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


13.4.1.5 gdbserver¥×¥í¥°¥é¥à¤Î»ÈÍÑ

gdbserver¤Ï¡¢ UNIX·Ï¥·¥¹¥Æ¥àÍѤÎÀ©¸æ¥×¥í¥°¥é¥à¤Ç¡¢ ¤³¤ì¤Ë¤è¤ê¡¢ Ä̾ï¤Î¥Ç¥Ð¥Ã¥°ÍÑ¥¹¥¿¥Ö¤ò¥ê¥ó¥¯¤¹¤ë¤³¤È¤Ê¤¯¡¢ target remote¥³¥Þ¥ó¥É¤Ë¤è¤Ã¤Æ¡¢ ¥æ¡¼¥¶¡¦¥×¥í¥°¥é¥à¤ò¥ê¥â¡¼¥È¤ÎGDB¤ËÀܳ¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£

gdbserver¤Ï¡¢ ¥Ç¥Ð¥Ã¥°ÍÑ¥¹¥¿¥Ö¤Ë´°Á´¤Ë¼è¤Ã¤ÆÂå¤ï¤ë¤â¤Î¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó¡£ gdbserver¤Ï¡¢ GDB¤¬É¬ÍפȤ¹¤ë¤Î¤ÈƱÍͤΥª¥Ú¥ì¡¼¥Æ¥£¥ó¥°¡¦¥·¥¹¥Æ¥à¤Îµ¡Ç½¤ò´ðËÜŪ¤Ë¤ÏɬÍפȤ¹¤ë¤«¤é¤Ç¤¹¡£ ¼ÂºÝ¡¢ ¥ê¥â¡¼¥È¤ÎGDB¤ÈÀܳ¤¹¤ë¤¿¤á¤Ëgdbserver¤ò¼Â¹Ô¤Ç¤­¤ë¥·¥¹¥Æ¥à¤Ç¤¢¤ì¤Ð¡¢ GDB¤ò¥í¡¼¥«¥ë¤Ë¼Â¹Ô¤¹¤ë¤³¤È¤â²Äǽ¤Ç¤¹¡£ ¤½¤ì¤Ç¤â¡¢ gdbserver¤ÏGDB¤ÈÈæ³Ó¤¹¤ë¤È¤«¤Ê¤ê¥µ¥¤¥º¤¬¾®¤µ¤¤¤Î¤Ç¡¢ ÊØÍø¤Ê¤³¤È¤¬¤¢¤ê¤Þ¤¹¡£ ¤Þ¤¿¡¢ gdbserver¤Î°Ü¿¢¤ÏGDBÁ´ÂΤΰܿ¢¤è¤ê¤â´Êñ¤Ê¤Î¤Ç¡¢ gdbserver¤ò»È¤¦¤³¤È¤Ç¡¢ ¿·¤·¤¤¥·¥¹¥Æ¥à¤Ç¤Îºî¶È¤ò¤è¤êÁ᤯³«»Ï¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡¢ ºÇ¸å¤Ë¡¢ ¥ê¥¢¥ë¡¦¥¿¥¤¥à¡¦¥·¥¹¥Æ¥à¤Î³«È¯¤ò¤·¤Æ¤¤¤ë¾ì¹ç¡¢ ¥ê¥¢¥ë¡¦¥¿¥¤¥à¤ÊÁàºî¤Ë´Ø¤ï¤ë¥È¥ì¡¼¥É¥ª¥Õ¤Î¤¿¤á¤Ë¡¢ Î㤨¤Ð¥¯¥í¥¹¡¦¥³¥ó¥Ñ¥¤¥ë¤Ê¤É¤Ë¤è¤Ã¤Æ¡¢ ¾¤Î¥·¥¹¥Æ¥à¾å¤Ç²Äǽ¤Ê¸Â¤ê¿¤¯¤Î³«È¯ºî¶È¤ò¹Ô¤Ã¤¿¤Û¤¦¤¬ÊØÍø¤Ç¤¢¤ë¤È¤¤¤¦¤³¤È¤¬¤¢¤ë¤Ç¤·¤ç¤¦¡£ ¥Ç¥Ð¥Ã¥°ºî¶È¤Ë´Ø¤·¤Æ¤â¡¢ gdbserver¤ò»È¤¦¤³¤È¤Ç¤³¤ì¤ÈƱ¤¸¤è¤¦¤ÊÁªÂò¤ò¹Ô¤¦¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£

GDB¤Ègdbserver¤Ï¡¢ ¥·¥ê¥¢¥ë²óÀþ¤Þ¤¿¤ÏTCPÀܳ¤ò·Ðͳ¤·¤Æ¡¢ ɸ½àŪ¤ÊGDB¥ê¥â¡¼¥È¡¦¥·¥ê¥¢¥ë¡¦¥×¥í¥È¥³¥ë¤Ë¤è¤Ã¤ÆÄÌ¿®¤·¤Þ¤¹¡£

¥¿¡¼¥²¥Ã¥È¡¦¥Þ¥·¥ó¤Ç¤Ï¡§

¥Ç¥Ð¥Ã¥°¤·¤¿¤¤¥×¥í¥°¥é¥à¤Î¥³¥Ô¡¼¤¬1¤ÄɬÍפǤ¹¡£ gdbserver¤Ï¥æ¡¼¥¶¡¦¥×¥í¥°¥é¥à¤Î¥·¥ó¥Ü¥ë¡¦¥Æ¡¼¥Ö¥ë¤òɬÍפȤϤ·¤Þ¤»¤ó¤Î¤Ç¡¢ ¥¹¥Ú¡¼¥¹¤ÎÀáÌó¤¬É¬ÍפǤ¢¤ì¤Ð¡¢ ¥×¥í¥°¥é¥à¤ò¥¹¥È¥ê¥Ã¥×¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£ ¥Û¥¹¥È¡¦¥·¥¹¥Æ¥à¾å¤ÎGDB¤¬¡¢ ¥·¥ó¥Ü¥ë¤Ë´Ø¤¹¤ë¤¹¤Ù¤Æ¤Î½èÍý¤ò¼Â¹Ô¤·¤Þ¤¹¡£

gdbserver¤ò»È¤¦¤Ë¤Ï¡¢ GDB¤È¤ÎÄÌ¿®ÊýË¡¡¢ ¥æ¡¼¥¶¡¦¥×¥í¥°¥é¥à¤Î̾Á°¡¢ ¥æ¡¼¥¶¡¦¥×¥í¥°¥é¥à¤Ø¤Î°ú¿ô¤ò¶µ¤¨¤Æ¤ä¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£ ¹½Ê¸¤Ï¡¢ °Ê²¼¤Î¤È¤ª¤ê¤Ç¤¹¡£

target> gdbserver comm program [ args … ]

comm¤Ï ¡Ê¥·¥ê¥¢¥ë²óÀþ¤ò»È¤¦¤¿¤á¤Î¡Ë ÁõÃÖ̾¡¢ ¤¢¤ë¤¤¤Ï¡¢ TCP¤Î¥Û¥¹¥È̾¤È¥Ý¡¼¥ÈÈÖ¹æ¤Ç¤¹¡£ Î㤨¤Ð¡¢ ‘foo.txt’¤È¤¤¤¦°ú¿ô¤ò»ØÄꤷ¤ÆEmacs¤ò¥Ç¥Ð¥Ã¥°¤·¡¢ ¥·¥ê¥¢¥ë¡¦¥Ý¡¼¥È/dev/com1·Ðͳ¤ÇGDB¤ÈÄÌ¿®¤¹¤ë¤Ë¤Ï¡¢ °Ê²¼¤Î¤è¤¦¤Ë¼Â¹Ô¤·¤Þ¤¹¡£

target> gdbserver /dev/com1 emacs foo.txt

gdbserver¤Ï¡¢ ¥Û¥¹¥È¦¤ÎGDB¤¬ÄÌ¿®¤·¤Æ¤¯¤ë¤Î¤ò¼õưŪ¤ËÂÔ¤Á¤Þ¤¹¡£

¥·¥ê¥¢¥ë²óÀþ¤ÎÂå¤ï¤ê¤ËTCPÀܳ¤ò»È¤¦¤Ë¤Ï¡¢ °Ê²¼¤Î¤è¤¦¤Ë¤·¤Þ¤¹¡£

target> gdbserver host:2345 emacs foo.txt

Á°¤ÎÎã¤È¤ÎÍ£°ì¤Î°ã¤¤¤ÏÂè1°ú¿ô¤Ç¤¹¡£ ¤³¤ì¤Ï¡¢ ¥Û¥¹¥È¤ÎGDB¤ÈTCP¤Ë¤è¤Ã¤ÆÀܳ¤¹¤ë¤³¤È¤ò»ØÄꤷ¤Æ¤¤¤Þ¤¹¡£ ‘host:2345’¤Ï¡¢ ¥Þ¥·¥ó‘host’¤«¤é¥í¡¼¥«¥ë¤ÎTCP¥Ý¡¼¥È2345¤Ø¤ÎTCPÀܳ¤ògdbserver¤¬´üÂÔ¤·¤Æ¤¤¤ë¤³¤È¤ò°ÕÌ£¤·¤Þ¤¹ ¡Ê¸½ºß¤Î¥Ð¡¼¥¸¥ç¥ó¤Ç¤Ï¡¢ ‘host’¤ÎÉôʬ¤Ï̵»ë¤µ¤ì¤Þ¤¹¡Ë¡£ ¥¿¡¼¥²¥Ã¥È¡¦¥·¥¹¥Æ¥à¾å¤Ç´û¤Ë»È¤ï¤ì¤Æ¤¤¤ëTCP¥Ý¡¼¥È¤Ç¤Ê¤±¤ì¤Ð¡¢ Ǥ°Õ¤ÎÈÖ¹æ¤ò¥Ý¡¼¥ÈÈÖ¹æ¤È¤·¤ÆÁªÂò¤Ç¤­¤Þ¤¹ ¡ÊÎ㤨¤Ð¡¢ 23¤Ïtelnet¤ËͽÌó¤µ¤ì¤Æ¤¤¤Þ¤¹¡Ë 3¡£ ¤³¤³¤Ç»ØÄꤷ¤¿¤Î¤ÈƱ¤¸¥Ý¡¼¥ÈÈÖ¹æ¤ò¡¢ ¥Û¥¹¥È¾å¤ÎGDB¤Îtarget remote¥³¥Þ¥ó¥É¤Ç»È¤ï¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó¡£

GDB¤Î¥Û¥¹¥È¡¦¥Þ¥·¥ó¤Ç¤Ï¡§

GDB¤Ï¥·¥ó¥Ü¥ë¾ðÊó¡¢ ¥Ç¥Ð¥Ã¥°¾ðÊó¤òɬÍפȤ¹¤ë¤Î¤Ç¡¢ ¥¹¥È¥ê¥Ã¥×¤µ¤ì¤Æ¤¤¤Ê¤¤¥æ¡¼¥¶¡¦¥×¥í¥°¥é¥à¤Î¥³¥Ô¡¼¤¬É¬ÍפǤ¹¡£ Ä̾ï¤É¤ª¤ê¡¢ Âè1°ú¿ô¤Ë¥æ¡¼¥¶¡¦¥×¥í¥°¥é¥à¤Î¥í¡¼¥«¥ë¡¦¥³¥Ô¡¼¤Î̾Á°¤ò»ØÄꤷ¤ÆGDB¤òµ¯Æ°¤·¤Þ¤¹ ¡Ê¥·¥ê¥¢¥ë²óÀþ¤Î®ÅÙ¤¬9600 bps°Ê³°¤Ç¤¢¤ì¤Ð¡¢ ‘--baud¥ª¥×¥·¥ç¥ó¤âɬÍפˤʤê¤Þ¤¹¡Ë¡£ ¤½¤Î¸å¡¢ target remote¥³¥Þ¥ó¥É¤Ë¤è¤Ã¤Ægdbserver¤È¤ÎÄÌ¿®¤ò³ÎΩ¤·¤Þ¤¹¡£ °ú¿ô¤Ë¤Ï¡¢ ÁõÃÖ̾ ¡ÊÄ̾ï¤Ï/dev/ttyb¤Î¤è¤¦¤Ê¥·¥ê¥¢¥ëÁõÃÖ¡Ë¡¢ ¤Þ¤¿¤Ï¡¢ host:PORT¤È¤¤¤¦·Á¼°¤Ç¤ÎTCP¥Ý¡¼¥Èµ­½Ò»Ò¤ò»ØÄꤷ¤Þ¤¹¡£ Î㤨¤Ð¡¢

(gdb) target remote /dev/ttyb

¤Ç¤Ï¡¢ ¥·¥ê¥¢¥ë²óÀþ/dev/ttyb¤ò²ð¤·¤Ægdbserver¤ÈÄÌ¿®¤·¤Þ¤¹¡£ ¤Þ¤¿¡¢

(gdb) target remote the-target:2345

¤Ç¤Ï¡¢ ¥Û¥¹¥Èthe-target¾å¤Î¥Ý¡¼¥È2345¤ËÂФ¹¤ëTCPÀܳ¤Ë¤è¤Ã¤ÆÄÌ¿®¤·¤Þ¤¹¡£ TCPÀܳ¤ò»È¤¦¾ì¹ç¤Ë¤Ï¡¢ target remote¥³¥Þ¥ó¥É¤ò¼Â¹Ô¤¹¤ëÁ°¤Ë¡¢ gdbserver¤òµ¯Æ°¤·¤Æ¤ª¤«¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó¡£ ¤½¤¦¤·¤Ê¤¤¤È¡¢¥¨¥é¡¼¤Ë¤Ê¤ê¤Þ¤¹¡£ ¥¨¥é¡¼¡¦¥Æ¥­¥¹¥È¤ÎÆâÍÆ¤Ï¥Û¥¹¥È¡¦¥·¥¹¥Æ¥à¤Ë¤è¤Ã¤Æ°Û¤Ê¤ê¤Þ¤¹¤¬¡¢ Ä̾ï¤Ï‘Connection refused’¤Î¤è¤¦¤ÊÆâÍÆ¤Ç¤¹¡£


Footnotes

(3)

¸¶Ãí¡§Â¾¤Î¥µ¡¼¥Ó¥¹¤Ë¤è¤Ã¤Æ»ÈÍѤµ¤ì¤Æ¤¤¤ë¥Ý¡¼¥ÈÈÖ¹æ¤òÁªÂò¤¹¤ë¤È¡¢ gdbserver¤Ï¥¨¥é¡¼¡¦¥á¥Ã¥»¡¼¥¸¤ò½ÐÎϤ·¤Æ½ªÎ»¤·¤Þ¤¹¡£