Next: , Previous: Stub Contents, Up: Remote Serial   [Contents][Index]


13.4.1.2 ¥¹¥¿¥Ö¤ËÂФ¹¤ëɬ¿Üºî¶È

GDB¤È¤È¤â¤ËÇÛÉÛ¤µ¤ì¤ë¥Ç¥Ð¥Ã¥°ÍÑ¥¹¥¿¥Ö¤Ï¡¢ ÆÃÄê¤Î¥Á¥Ã¥×¤Î¥¢¡¼¥­¥Æ¥¯¥Á¥ãÍѤ˥»¥Ã¥È¥¢¥Ã¥×¤µ¤ì¤¿¤â¤Î¤Ç¤¹¤¬¡¢ ¥Ç¥Ð¥Ã¥°¤Î¥¿¡¼¥²¥Ã¥È¡¦¥Þ¥·¥ó¤Ë´Ø¤·¤Æ¤½¤ì°Ê³°¤Î¾ðÊó¤Ï»ý¤Ã¤Æ¤¤¤Þ¤»¤ó¡£

¤Þ¤ººÇ½é¤Ë¡¢ ¤É¤Î¤è¤¦¤Ë¤·¤Æ¥·¥ê¥¢¥ë¡¦¥Ý¡¼¥È¤ÈÄÌ¿®¤¹¤ë¤«¤ò¥¹¥¿¥Ö¤Ë¶µ¤¨¤Æ¤ä¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£

int getDebugChar()

¥·¥ê¥¢¥ë¡¦¥Ý¡¼¥È¤«¤éñ°ìʸ»ú¤òÆÉ¤ß¹þ¤à¥µ¥Ö¥ë¡¼¥Á¥ó¤È¤·¤Æ¤³¤ì¤ò½ñ¤­¤Þ¤¹¡£ ¤³¤ì¤Ï¡¢ ¥¿¡¼¥²¥Ã¥È¡¦¥·¥¹¥Æ¥à¾å¤Î getchar¤ÈƱ°ì¤«¤â¤·¤ì¤Þ¤»¤ó¡£ ¤³¤ì¤é2¤Ä¤ò¶èÊ̤·¤¿¤¤¾ì¹ç¤ò¹Íθ¤·¤Æ¡¢ °Û¤Ê¤ë̾Á°¤¬»È¤ï¤ì¤Æ¤¤¤Þ¤¹¡£

void putDebugChar(int)

¥·¥ê¥¢¥ë¡¦¥Ý¡¼¥È¤Ëñ°ìʸ»ú¤ò½ñ¤­¹þ¤à¥µ¥Ö¥ë¡¼¥Á¥ó¤È¤·¤Æ¤³¤ì¤ò½ñ¤­¤Þ¤¹¡£ ¤³¤ì¤Ï¡¢ ¥¿¡¼¥²¥Ã¥È¡¦¥·¥¹¥Æ¥à¾å¤Î putchar¤ÈƱ°ì¤«¤â¤·¤ì¤Þ¤»¤ó¡£ ¤³¤ì¤é2¤Ä¤ò¶èÊ̤·¤¿¤¤¾ì¹ç¤ò¹Íθ¤·¤Æ¡¢ °Û¤Ê¤ë̾Á°¤¬»È¤ï¤ì¤Æ¤¤¤Þ¤¹¡£

¼Â¹ÔÃæ¤Î¥æ¡¼¥¶¡¦¥×¥í¥°¥é¥à¤òGDB¤¬Ää»ß¤Ç¤­¤ë¤è¤¦¤Ë¤·¤¿¤¤¤Î¤Ç¤¢¤ì¤Ð¡¢ ³ä¤ê¹þ¤ß¶îư·¿¤Î¥·¥ê¥¢¥ë¡¦¥É¥é¥¤¥Ð¤ò»ÈÍѤ·¤Æ¡¢ ^C ¡Êcontrol-Cʸ»ú¡¢ ¤¹¤Ê¤ï¤Á‘\003’¡Ë ¤ò¼õ¿®¤·¤¿¤È¤­¤ËÄä»ß¤¹¤ë¤è¤¦ÀßÄꤹ¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£ GDB¤Ï¤³¤Îʸ»ú¤ò»È¤Ã¤Æ¡¢ ¥ê¥â¡¼¥È¡¦¥·¥¹¥Æ¥à¤ËÂФ·¤ÆÄä»ß¤¹¤ë¤è¤¦ÄÌÃΤ·¤Þ¤¹¡£

¥Ç¥Ð¥Ã¥°¡¦¥¿¡¼¥²¥Ã¥È¤¬Å¬Àڤʥ¹¥Æ¡¼¥¿¥¹¾ðÊó¤òGDB¤ËÂФ·¤ÆÊÖ¤»¤ë¤è¤¦¤Ë¤¹¤ë¤¿¤á¤Ë¤Ï¡¢ ¤ª¤½¤é¤¯É¸½à¤Î¥¹¥¿¥Ö¤òÊѹ¹¤¹¤ëɬÍפ¬¤¢¤ë¤Ç¤·¤ç¤¦¡£ ºÇ¤âÈþ¤·¤¯¤Ê¤¯¡¢ ¤·¤«¤·ºÇ¤â¼ê¤Ã¼è¤êÁ᤯¤³¤ì¤ò¼Â¸½¤¹¤ëÊýË¡¤Ï¡¢ ¥Ö¥ì¥¤¥¯¥Ý¥¤¥ó¥ÈÌ¿Îá¤ò¼Â¹Ô¤¹¤ë¤³¤È¤Ç¤¹ ¡Ê¤³¤ÎÊýË¡¤¬¡ÖÈþ¤·¤¯¤Ê¤¤¡×¤Î¤Ï¡¢ GDB¤¬SIGINT¤Ç¤Ï¤Ê¤¯SIGTRAP¤òÊó¹ð¤·¤Æ¤¯¤ëÅÀ¤Ë¤¢¤ê¤Þ¤¹¡Ë¡£

¥æ¡¼¥¶¤¬Ä󶡤¹¤ëɬÍפΤ¢¤ë¥ë¡¼¥Á¥ó¤Ë¤Ï¡¢ ¤Û¤«¤Ë°Ê²¼¤Î¤è¤¦¤Ê¤â¤Î¤¬¤¢¤ê¤Þ¤¹¡£

void exceptionHandler (int exception_number, void *exception_address)

Îã³°½èÍý¥Æ¡¼¥Ö¥ë¤Ëexception_address¤òÁȤ߹þ¤à¤è¤¦¡¢ ¤³¤Î´Ø¿ô¤ò½ñ¤­¤Þ¤¹¡£ ¥æ¡¼¥¶¤¬¤³¤ì¤òÄ󶡤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¤Î¤Ï¡¢ ¥¹¥¿¥Ö¤Ë¤Ï¥¿¡¼¥²¥Ã¥È¡¦¥·¥¹¥Æ¥à¾å¤ÎÎã³°½èÍý¥Æ¡¼¥Ö¥ë¤¬¤É¤Î¤è¤¦¤Ê¤â¤Î¤Ë¤Ê¤ë¤«¤òÃΤë¼êÃʤ¬¤Ê¤¤¤«¤é¤Ç¤¹ ¡ÊÎ㤨¤Ð¡¢ ¥×¥í¥»¥Ã¥µ¤Î¥Æ¡¼¥Ö¥ë¤ÏROM¾å¤Ë¤¢¤ê¡¢ ¤½¤ÎÃæ¤Î¥¨¥ó¥È¥ê¤¬RAM¾å¤Î¥Æ¡¼¥Ö¥ë¤ò»Ø¤¹¡¢ ¤È¤¤¤¦·Á¤Ë¤Ê¤Ã¤Æ¤¤¤ë¤«¤â¤·¤ì¤Þ¤»¤ó¡Ë¡£ exception_number ¤ÏÎã³°ÈÖ¹æ¤Ç¡¢ ¤³¤ì¤ÏÊѹ¹¤µ¤ì¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£ Îã³°ÈÖ¹æ¤Î°ÕÌ£¤Ï¡¢ ¥¢¡¼¥­¥Æ¥¯¥Á¥ã¤Ë°Í¸¤·¤Þ¤¹ ¡ÊÎ㤨¤Ð¡¢ 0¤Ë¤è¤ë½ü»»¡¢ ¶­³¦¤ò̵»ë¤·¤¿¥á¥â¥ê¡¦¥¢¥¯¥»¥¹Åù¤Ï¡¢ °Û¤Ê¤ëÈÖ¹æ¤Ë¤è¤Ã¤ÆÉ½¤ï¤µ¤ì¤ë¤«¤â¤·¤ì¤Þ¤»¤ó¡Ë¡£ ¤³¤ÎÎã³°¤¬È¯À¸¤·¤¿¤È¤­¡¢ À©¸æ¤ÏľÀÜexception_address¤ËÅϤµ¤ì¤Ê¤±¤ì¤Ð¤Ê¤é¤º¡¢ ¤Þ¤¿¡¢ ¥×¥í¥»¥Ã¥µ¤Î¾õÂÖ ¡Ê¥¹¥¿¥Ã¥¯¡¢¥ì¥¸¥¹¥¿¤Ê¤É¡Ë ¤Ï¥×¥í¥»¥Ã¥µÎã³°¤¬È¯À¸¤·¤¿¤È¤­¤Î¾õÂÖ¤ÈÆ±¤¸¤Ç¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó¡£ ¤·¤¿¤¬¤Ã¤Æ¡¢ exception_address¤ËÅþ㤹¤ë¤Î¤Ë¥¸¥ã¥ó¥×Ì¿Îá¤ò»ÈÍѤ·¤¿¤¤¤Î¤Ç¤¢¤ì¤Ð¡¢ ¥µ¥Ö¥ë¡¼¥Á¥ó¡¦¥¸¥ã¥ó¥×¤Ç¤Ï¤Ê¤¯¡¢ ¤¿¤À¤Î¥¸¥ã¥ó¥×Ì¿Îá¤ò»È¤ï¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó¡£

386¤Ç¤Ï¡¢ ¥Ï¥ó¥É¥é¤¬¼Â¹Ô¤µ¤ì¤Æ¤¤¤ë¤È¤­¤Ë³ä¤ê¹þ¤ß¤¬¥Þ¥¹¥¯¤µ¤ì¤ë¤è¤¦¡¢ exception_address¤Ï³ä¤ê¹þ¤ß¥²¡¼¥È¤È¤·¤ÆÁȤ߹þ¤Þ¤ì¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£ ¤½¤Î¥²¡¼¥È¤ÏÆÃ¸¢¥ì¥Ù¥ë0 ¡ÊºÇ¤â¹â¤¤¥ì¥Ù¥ë¡Ë ¤Ç¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó¡£ SPARCÍѤΥ¹¥¿¥Ö¤ä68kÍѤΥ¹¥¿¥Ö¤Ï¡¢ exceptionHandler¤Î½õ¤±¤ò¼Ú¤ê¤Ê¤¯¤Æ¤â¼«Ê¬¤Ç³ä¤ê¹þ¤ß¤ò¥Þ¥¹¥¯¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£

void flush_i_cache()

¡Êsparc¡¢ sparclite¤Î¤ß¡Ë ¥¿¡¼¥²¥Ã¥È¡¦¥Þ¥·¥ó¤ËÌ¿Îᥭ¥ã¥Ã¥·¥å¤¬¤¢¤ë¾ì¹ç¡¢ ¤½¤ì¤ò¥Õ¥é¥Ã¥·¥å¤¹¤ë¤è¤¦¤³¤Î¥µ¥Ö¥ë¡¼¥Á¥ó¤ò½ñ¤­¤Þ¤¹¡£ Ì¿Îᥭ¥ã¥Ã¥·¥å¤¬¤Ê¤¤¾ì¹ç¤Ë¤Ï¡¢ ¤³¤Î¥µ¥Ö¥ë¡¼¥Á¥ó¤Ï²¿¤â¤·¤Ê¤¤¤â¤Î¤Ë¤Ê¤ë¤«¤â¤·¤ì¤Þ¤»¤ó¡£

Ì¿Îᥭ¥ã¥Ã¥·¥å¤ò»ý¤Ä¥¿¡¼¥²¥Ã¥È¡¦¥Þ¥·¥ó¾å¤ÎGDB¤Ï¡¢ ¥æ¡¼¥¶¡¦¥×¥í¥°¥é¥à¤¬°ÂÄꤷ¤¿¾õÂ֤ˤ¢¤ë¤³¤È¤¬ ¤³¤Î´Ø¿ô¤Ë¤è¤Ã¤ÆÊݾڤµ¤ì¤ë¤³¤È¤òɬÍפȤ·¤Þ¤¹¡£

¤Þ¤¿¡¢¼¡¤Î¥é¥¤¥Ö¥é¥ê¡¦¥ë¡¼¥Á¥ó¤¬»ÈÍѲÄǽ¤Ç¤¢¤ë¤³¤È¤ò³Î¤«¤á¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó¡£

void *memset(void *, int, int)

¤¢¤ë¥á¥â¥êÎΰè¤Ë´ûÃΤÎÃͤòÀßÄꤹ¤ëɸ½à¥é¥¤¥Ö¥é¥ê´Ø¿ômemset¤Ç¤¹¡£ ¥Õ¥ê¡¼¤Îlibc.a¤ò»ý¤Ã¤Æ¤¤¤ì¤Ð¡¢ ¤½¤³¤Ëmemset¤¬¤¢¤ê¤Þ¤¹¡£ ¥Õ¥ê¡¼¤Îlibc.a¤¬¤Ê¤±¤ì¤Ð¡¢ memset¤ò¥Ï¡¼¥É¥¦¥§¥¢¤Î¶¡µë¸µ¤«¤éÆþ¼ê¤¹¤ë¤«¡¢ ¼«Ê¬¤ÇºîÀ®¤¹¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£

GNU C¥³¥ó¥Ñ¥¤¥é¤ò»È¤Ã¤Æ¤¤¤Ê¤¤¤Î¤Ç¤¢¤ì¤Ð¡¢ ¾¤Îɸ½à¥é¥¤¥Ö¥é¥ê¡¦¥µ¥Ö¥ë¡¼¥Á¥ó¤âɬÍפˤʤ뤫¤â¤·¤ì¤Þ¤»¤ó¡£ ¤³¤ì¤Ï¡¢ ¥¹¥¿¥Ö¤Ë¤è¤Ã¤Æ¤â°Û¤Ê¤ê¤Þ¤¹¤¬¡¢ °ìÈÌŪ¤Ë¥¹¥¿¥Ö¤Ï¡¢ gcc¤¬¥¤¥ó¥é¥¤¥ó¡¦¥³¡¼¥É¤È¤·¤ÆÀ¸À®¤¹¤ë¶¦Ḁ̈饤¥Ö¥é¥ê¡¦¥µ¥Ö¥ë¡¼¥Á¥ó¤ò»ÈÍѤ¹¤ë²ÄǽÀ­¤¬¤¢¤ê¤Þ¤¹¡£