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


13.4.1.3 ¤³¤³¤Þ¤Ç¤Î¤Þ¤È¤á

Í×Ì󤹤ë¤È¡¢ ¥æ¡¼¥¶¡¦¥×¥í¥°¥é¥à¤ò¥Ç¥Ð¥Ã¥°¤¹¤ë½àÈ÷¤¬À°¤Ã¤¿¸å¡¢ °Ê²¼¤Î¼ê½ç¤Ë½¾¤ï¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó¡£

  1. ²¼°Ì¥ì¥Ù¥ë¤Î¥µ¥Ý¡¼¥È¡¦¥ë¡¼¥Á¥ó¤¬¤¢¤ë¤³¤È¤ò³Îǧ¤·¤Þ¤¹ ¡Êsee What you must do for the stub¡Ë¡£
    getDebugChar, putDebugChar,
    flush_i_cache, memset, exceptionHandler.
    
  2. ¥æ¡¼¥¶¡¦¥×¥í¥°¥é¥à¤ÎÀèÆ¬ÉÕ¶á¤Ë°Ê²¼¤Î¹Ô¤òÁÞÆþ¤·¤Þ¤¹¡£
    set_debug_traps();
    breakpoint();
    
  3. 680x0¤Î¥¹¥¿¥Ö¤Ë¸Â¤ê¡¢ exceptionHook¤È¤¤¤¦ÊÑ¿ô¤òÄ󶡤¹¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£ Ä̾ï¤Ï¡¢ °Ê²¼¤Î¤è¤¦¤Ë»È¤¤¤Þ¤¹¡£
    void (*exceptionHook)() = 0;
    

    ¤·¤«¤·¡¢ set_debug_traps¤¬¸Æ¤Ó½Ð¤µ¤ì¤ëÁ°¤Ë¡¢ ¥æ¡¼¥¶¡¦¥×¥í¥°¥é¥àÆâ¤Î¤¢¤ë´Ø¿ô¤ò»Ø¤¹¤è¤¦¤³¤ÎÊÑ¿ô¤òÀßÄꤹ¤ë¤È¡¢ ¥È¥é¥Ã¥× ¡ÊÎ㤨¤Ð¡¢ ¥Ð¥¹¡¦¥¨¥é¡¼¡Ë ¤ÇÄä»ß¤·¤¿¸å¤ËGDB¤¬½èÍý¤ò·Ñ³¼Â¹Ô¤¹¤ë¤È¤­¤Ë¡¢ ¤½¤Î´Ø¿ô¤¬¸Æ¤Ó½Ð¤µ¤ì¤Þ¤¹¡£ exceptionHook¤Ë¤è¤Ã¤Æ»Ø¤µ¤ì¤ë´Ø¿ô¤Ï¡¢ 1¤Ä¤Î°ú¿ôÉÕ¤­¤Ç¸Æ¤Ó½Ð¤µ¤ì¤Þ¤¹¡£ ¤½¤ì¤Ï¡¢ int·¿¤ÎÎã³°ÈÖ¹æ¤Ç¤¹¡£

  4. ¥æ¡¼¥¶¡¦¥×¥í¥°¥é¥à¡¢ ¥¿¡¼¥²¥Ã¥È¡¦¥¢¡¼¥­¥Æ¥¯¥Á¥ãÍѤÎGDB¥Ç¥Ð¥Ã¥°¡¦¥¹¥¿¥Ö¡¢ ¥µ¥Ý¡¼¥È¡¦¥µ¥Ö¥ë¡¼¥Á¥ó¤ò¥³¥ó¥Ñ¥¤¥ë¤·¥ê¥ó¥¯¤·¤Þ¤¹¡£
  5. ¥¿¡¼¥²¥Ã¥È¡¦¥Þ¥·¥ó¤ÈGDB¥Û¥¹¥È¤È¤Î´Ö¤¬¥·¥ê¥¢¥ëÀܳ¤µ¤ì¤Æ¤¤¤ë¤³¤È¤ò³Îǧ¤·¤Þ¤¹¡£ ¤Þ¤¿¡¢ ¥Û¥¹¥È¾å¤Î¥·¥ê¥¢¥ë¡¦¥Ý¡¼¥È¤Î̾Á°¤òÄ´¤Ù¤Þ¤¹¡£
  6. ¥¿¡¼¥²¥Ã¥È¡¦¥Þ¥·¥ó¤Ë¥æ¡¼¥¶¡¦¥×¥í¥°¥é¥à¤ò¥À¥¦¥ó¥í¡¼¥É¤· ¡Ê¤¢¤ë¤¤¤Ï¡¢ À½Â¤¸µ¤ÎÄ󶡤¹¤ë¼êÃʤˤè¤Ã¤Æ¥¿¡¼¥²¥Ã¥È¡¦¥Þ¥·¥ó¤Ë¥æ¡¼¥¶¡¦¥×¥í¥°¥é¥à¤ò»ý¤Ã¤Æ¤¤¤­¡Ë¡¢ µ¯Æ°¤·¤Þ¤¹¡£
  7. ¥ê¥â¡¼¥È¡¦¥Ç¥Ð¥Ã¥°¤ò³«»Ï¤¹¤ë¤Ë¤Ï¡¢ ¥Û¥¹¥È¡¦¥Þ¥·¥ó¾å¤ÇGDB¤ò¼Â¹Ô¤·¡¢ ¥ê¥â¡¼¥È¡¦¥Þ¥·¥ó¾å¤Ç¼Â¹ÔÃæ¤Î¥×¥í¥°¥é¥à¤ò¼Â¹Ô¥Õ¥¡¥¤¥ë¤È¤·¤Æ»ØÄꤷ¤Þ¤¹¡£ ¤³¤ì¤Ë¤è¤ê¡¢ ¥æ¡¼¥¶¡¦¥×¥í¥°¥é¥à¤Î¥·¥ó¥Ü¥ë¤È¥Æ¥­¥¹¥È°è¤ÎÆâÍÆ¤ò¸«¤Ä¤±¤ëÊýË¡¤¬GDB¤ËÄÌÃΤµ¤ì¤Þ¤¹¡£

    ¼¡¤Ëtarget remote¥³¥Þ¥ó¥É¤ò»È¤Ã¤ÆÄÌ¿®¤ò³ÎΩ¤·¤Þ¤¹¡£ °ú¿ô¤Ë¤Ï¡¢ ¥·¥ê¥¢¥ë²óÀþ¤ËÀܳ¤µ¤ì¤¿ÁõÃÖ̾¤Þ¤¿¤Ï ¡ÊÄ̾ï¤Ï¥¿¡¼¥²¥Ã¥È¤ÈÀܳ¤µ¤ì¤¿¥·¥ê¥¢¥ë²óÀþ¤ò»ý¤ÄüËö¥µ¡¼¥Ð¤Î¡Ë TCP¥Ý¡¼¥È¤ò»ØÄꤹ¤ë¤³¤È¤Ç¡¢ ¥¿¡¼¥²¥Ã¥È¡¦¥Þ¥·¥ó¤È¤ÎÄÌ¿®ÊýË¡¤ò»ØÄꤷ¤Þ¤¹¡£ Î㤨¤Ð¡¢ /dev/ttyb¤È¤¤¤¦Ì¾Á°¤ÎÁõÃÖ¤ËÀܳ¤µ¤ì¤Æ¤¤¤ë¥·¥ê¥¢¥ë²óÀþ¤ò»È¤¦¤Ë¤Ï¡¢

    target remote /dev/ttyb
    

    ¤È¤·¤Þ¤¹¡£

    TCPÀܳ¤ò»È¤¦¤Ë¤Ï¡¢ host:port¤È¤¤¤¦·Á¼°¤Î°ú¿ô¤ò»ÈÍѤ·¤Þ¤¹¡£ Î㤨¤Ð¡¢ manyfarms¤È¤¤¤¦Ì¾Á°¤ÎüËö¥µ¡¼¥Ð¤Î¥Ý¡¼¥È2828¤ËÀܳ¤¹¤ë¤Ë¤Ï¡¢

    target remote manyfarms:2828
    

    ¤È¤·¤Þ¤¹¡£

¤³¤³¤Þ¤Ç¤¯¤ë¤È¡¢ ¥Ç¡¼¥¿¤ÎÃͤÎÄ´ºº¡¢ Êѹ¹¡¢ ¥ê¥â¡¼¥È¡¦¥×¥í¥°¥é¥à¤Î¥¹¥Æ¥Ã¥×¼Â¹Ô¡¢ ·Ñ³¼Â¹Ô¤ËÄ̾ï»ÈÍѤ¹¤ë¤¹¤Ù¤Æ¤Î¥³¥Þ¥ó¥É¤ò»ÈÍѤ¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£

¥ê¥â¡¼¥È¡¦¥×¥í¥°¥é¥à¤Î¼Â¹Ô¤òºÆ³«¤·¡¢ ¥Ç¥Ð¥Ã¥°¤¹¤ë¤Î¤ò¤ä¤á¤ë¤Ë¤Ï¡¢ detach¥³¥Þ¥ó¥É¤ò»È¤¤¤Þ¤¹¡£

GDB¤¬¥ê¥â¡¼¥È¡¦¥×¥í¥°¥é¥à¤òÂԤäƤ¤¤ë¤È¤­¤Ë¤Ï¤¤¤Ä¤Ç¤â¡¢ ³ä¤ê¹þ¤ßʸ»ú ¡Ê¿¤¯¤Î¾ì¹ç C-C¡Ë ¤òÆþÎϤ¹¤ë¤È¡¢ GDB¤Ï¤½¤Î¥×¥í¥°¥é¥à¤òÄä»ß¤·¤è¤¦¤È¤·¤Þ¤¹¡£ ¤³¤ì¤ÏÀ®¸ù¤¹¤ë¤³¤È¤â¼ºÇÔ¤¹¤ë¤³¤È¤â¤¢¤ê¤Þ¤¹¤¬¡¢ ¤½¤ÎÀ®Èݤϡ¢ ¥ê¥â¡¼¥È¡¦¥·¥¹¥Æ¥à¤Î¥Ï¡¼¥É¥¦¥§¥¢¤ä¥·¥ê¥¢¥ë¡¦¥É¥é¥¤¥Ð¤Ë¤â°Í¸¤·¤Þ¤¹¡£ ³ä¤ê¹þ¤ßʸ»ú¤òºÆÅÙÆþÎϤ¹¤ë¤È¡¢ GDB¤Ï°Ê²¼¤Î¥×¥í¥ó¥×¥È¤òɽ¼¨¤·¤Þ¤¹¡£

Interrupted while waiting for the program.
Give up (and stop debugging it)?  (y or n)

¤³¤³¤Çy¤òÆþÎϤ¹¤ë¤È¡¢ GDB¤Ï¥ê¥â¡¼¥È¡¦¥Ç¥Ð¥Ã¥°¡¦¥»¥Ã¥·¥ç¥ó¤òÇË´þ¤·¤Þ¤¹ ¡Ê¸å¤Ë¤Ê¤Ã¤ÆºÆ¼Â¹Ô¤·¤¿¤¯¤Ê¤Ã¤¿¾ì¹ç¤Ë¤Ï¡¢ Àܳ¤¹¤ë¤¿¤á¤Ë‘target remote’¤òºÆÅÙ»ÈÍѤ·¤Þ¤¹¡Ë¡£ n¤òÆþÎϤ¹¤ë¤È¡¢ GDB¤ÏºÆ¤ÓÂÔ¤Á¾õÂ֤ˤʤê¤Þ¤¹¡£