Next: Debug Session, Previous: Stub Contents, Up: Remote Serial [Contents][Index]
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
¤¬¥¤¥ó¥é¥¤¥ó¡¦¥³¡¼¥É¤È¤·¤ÆÀ¸À®¤¹¤ë¶¦Ḁ̈饤¥Ö¥é¥ê¡¦¥µ¥Ö¥ë¡¼¥Á¥ó¤ò»ÈÍѤ¹¤ë²ÄǽÀ¤¬¤¢¤ê¤Þ¤¹¡£