Next: , Previous: Command Syntax, Up: Commands   [Contents][Index]


3.2 ¥³¥Þ¥ó¥É̾¤ÎÊä´°

ÅÓÃæ¤Þ¤ÇÆþÎϤµ¤ì¤¿¥³¥Þ¥ó¥É̾¤Ï¡¢ ¤½¤ì¤¬¤¢¤¤¤Þ¤¤¤Ç¤Ê¤±¤ì¤Ð¡¢ GDB¤¬»Ä¤ê¤ÎÉôʬ¤òÊä´°¤·¤Æ¤¯¤ì¤Þ¤¹¡£ ¤Þ¤¿¡¢ ¤¤¤Ä¤Ç¤â¡¢ ¥³¥Þ¥ó¥É̾¤ÎÊä´°¸õÊä¤Î°ìÍ÷¤òɽ¼¨¤·¤Æ¤¯¤ì¤Þ¤¹¡£ ¤³¤Îµ¡Ç½¤Ï¡¢ GDB¥³¥Þ¥ó¥É̾¡¢ GDB¥µ¥Ö¡¦¥³¥Þ¥ó¥É̾¡¢ ¥æ¡¼¥¶¡¦¥×¥í¥°¥é¥à¤Î¥·¥ó¥Ü¥ë̾¤ËÂФ·¤ÆÍ­¸ú¤Ç¤¹¡£

GDB¤Ëñ¸ì¤Î»Ä¤ê¤ÎÉôʬ¤òÊä´°¤µ¤»¤¿¤¤¾ì¹ç¤Ë¤Ï¡¢ TAB¥­¡¼¤ò²¡¤·¤Þ¤¹¡£ Êä´°¸õÊ䤬1¤Ä¤·¤«Â¸ºß¤·¤Ê¤¤¾ì¹ç¡¢ GDB¤Ï»Ä¤ê¤ÎÉôʬ¤òÊä´°¤·¡¢ ¥æ¡¼¥¶¤¬¥³¥Þ¥ó¥É¤ò ¡ÊRET¥­¡¼¤ò²¡¤¹¤³¤È¤Ç¡Ë ´°·ë¤µ¤»¤ë¤Î¤òÂÔ¤Á¤Þ¤¹¡£ Î㤨¤Ð¡¢ ¥æ¡¼¥¶¤¬°Ê²¼¤Î¤è¤¦¤ËÆþÎϤ·¤¿¤È¤·¤Þ¤·¤ç¤¦¡£

(gdb) info bre TAB

GDB¤Ï‘breakpoints’¤È¤¤¤¦Ã±¸ì¤Î»Ä¤ê¤ÎÉôʬ¤òÊä´°¤·¤Þ¤¹¡£ ¤Ê¤¼¤Ê¤é¡¢ info¥³¥Þ¥ó¥É¤Î¥µ¥Ö¡¦¥³¥Þ¥ó¥É¤Î¤¦¤Á¡¢ ‘bre’¤Ç»Ï¤Þ¤ë¤Î¤Ï¤³¤Îñ¸ì¤À¤±¤À¤«¤é¤Ç¤¹¡£

(gdb) info breakpoints

¤³¤Î»þÅÀ¤Ç¡¢ ¥æ¡¼¥¶¤ÏRET¥­¡¼¤ò²¡¤·¤Æinfo breakpoints¥³¥Þ¥ó¥É¤ò¼Â¹Ô¤¹¤ë¤«¡¢ ¤¢¤ë¤¤¤Ï‘breakpoints’¥³¥Þ¥ó¥É¤¬¼Â¹Ô¤·¤¿¤¤¥³¥Þ¥ó¥É¤Ç¤Ï¤Ê¤«¤Ã¤¿¾ì¹ç¤Ë¤Ï¡¢ ¥Ð¥Ã¥¯¥¹¥Ú¡¼¥¹¡¦¥­¡¼¤ò²¡¤·¤Æ¤³¤ì¤ò¾Ãµî¤·¤Æ¤«¤é¡¢ ¾¤Îʸ»ú¤òÆþÎϤ¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹ ¡ÊºÇ½é¤«¤éinfo breakpoints¥³¥Þ¥ó¥É¤ò¼Â¹Ô¤¹¤ë¤Ä¤â¤ê¤Ç¤¢¤ì¤Ð¡¢ ¥³¥Þ¥ó¥É̾Êä´°µ¡Ç½¤Ç¤Ï¤Ê¤¯¥³¥Þ¥ó¥É̾¤Î¾Êά·Á¤òÍøÍѤ·¤Æ¡¢ ‘info bre’¤ÈÆþÎϤ·¤¿¸å¡¢ ¤¿¤À¤Á¤ËRET¥­¡¼¤ò²¡¤·¤Æ¤â¤¤¤¤¤Ç¤·¤ç¤¦¡Ë¡£

TAB¥­¡¼¤¬²¡¤µ¤ì¤¿¤È¤­¤Ë¡¢ 2¤Ä°Ê¾å¤ÎÊä´°¸õÊ䤬¸ºß¤¹¤ë¾ì¹ç¡¢ GDB¤Ï¥Ù¥ë²»¤òÌĤ餷¤Þ¤¹¡£ ¤µ¤é¤Ë¤¤¤¯¤Ä¤«Ê¸»ú¤òÆþÎϤ·¤Æ¤«¤éÊä´°¤òºÆÅÙ»î¤ß¤ë¤³¤È¤â²Äǽ¤Ç¤¹¤·¡¢ ñ¤Ë³¤±¤ÆTAB¥­¡¼¤ò²¡¤¹¤³¤È¤â²Äǽ¤Ç¤¹¡£ ¸å¼Ô¤Î¾ì¹ç¡¢ GDB¤ÏÊä´°¸õÊä¤ÎÁ´°ìÍ÷¤òɽ¼¨¤·¤Þ¤¹¡£ Î㤨¤Ð¡¢ ‘make_’¤Ç»Ï¤Þ¤ë̾Á°¤ò»ý¤Ä¥µ¥Ö¥ë¡¼¥Á¥ó¤Ë¥Ö¥ì¥¤¥¯¥Ý¥¤¥ó¥È¤òÀßÄꤷ¤¿¤¤¤è¤¦¤Ê¾ì¹ç¤Ë¡¢ b make_¤Þ¤ÇÆþÎϤ·¤ÆTAB¥­¡¼¤òÆþÎϤ·¤¿¤È¤³¤í¥Ù¥ë²»¤¬ÌĤ俤Ȥ·¤Þ¤·¤ç¤¦¡£ ¤³¤³¤Ç³¤±¤ÆTAB¥­¡¼¤òÆþÎϤ¹¤ë¤È¡¢ ¥×¥í¥°¥é¥àÆâ¤Î‘make_’¤Ç»Ï¤Þ¤ë¤¹¤Ù¤Æ¤Î¥µ¥Ö¥ë¡¼¥Á¥ó̾¤¬É½¼¨¤µ¤ì¤Þ¤¹¡£ Î㤨¤Ð¡¢ °Ê²¼¤Î¤è¤¦¤ËÆþÎϤ·¤¿¤È¤·¤Þ¤¹¡£

(gdb) b make_ TAB

¤³¤³¤ÇGDB¤Ï¥Ù¥ë²»¤òÌĤ餷¤Þ¤¹¡£ ¤â¤¦°ìÅÙTAB¥­¡¼¤òÆþÎϤ¹¤ë¤È¡¢ °Ê²¼¤Î¤è¤¦¤Ëɽ¼¨¤µ¤ì¤Þ¤¹¡£

make_a_section_from_file     make_environ               
make_abs_section             make_function_type         
make_blockvector             make_pointer_type          
make_cleanup                 make_reference_type        
make_command                 make_symbol_completion_list
(gdb) b make_

Êä´°¸õÊä¤òɽ¼¨¤·¤¿¸å¡¢ ¥æ¡¼¥¶¤¬Â³¤­¤òÆþÎϤǤ­¤ë¤è¤¦¡¢ GDB¤ÏÅÓÃæ¤Þ¤ÇÆþÎϤµ¤ì¤¿Ê¸»úÎó ¡Ê¤³¤³¤Ç¤Ï‘b make_’¡Ë ¤òºÆÉ½¼¨¤·¤Þ¤¹¡£

ºÇ½é¤«¤éÊä´°¸õÊä¤Î°ìÍ÷¤òɽ¼¨¤·¤¿¤¤¤Î¤Ç¤¢¤ì¤Ð¡¢ TAB¥­¡¼¤ò2²ó²¡¤¹Âå¤ï¤ê¤ËM-?¤òÆþÎϤ¹¤ë¤³¤È¤â¤Ç¤­¤Þ¤¹¡£ ¤³¤³¤Ç¡¢ M-?¤È¤¤¤¦¤Î¤ÏMETA ?¤ò°ÕÌ£¤·¤Þ¤¹¡£ ¤³¤ì¤òÆþÎϤ¹¤ë¤Ë¤Ï¡¢ ¥­¡¼¥Ü¡¼¥É¾å¤ËMETA¥·¥Õ¥È¡¦¥­¡¼¤È¤·¤Æ»ØÄꤵ¤ì¤¿¥­¡¼¤¬¤¢¤ì¤Ð¡¢ ¤½¤ì¤ò²¡¤·¤Ê¤¬¤é?¤òÆþÎϤ·¤Þ¤¹¡£ META¥·¥Õ¥È¡¦¥­¡¼¤¬¤Ê¤¤¾ì¹ç¤Ë¤Ï¡¢ ESC¥­¡¼¤ò²¡¤·¤¿¸å¡¢ ?¤òÆþÎϤ·¤Þ¤¹¡£

¤È¤­¤Ë¤Ï¡¢ ÆþÎϤ·¤¿¤¤Ê¸»úÎ󤬡¢ ÏÀÍýŪ¤Ë¤Ï¡ØÃ±¸ì¡Ù¤Ç¤¢¤Ã¤Æ¤â¡¢ GDB¤¬Ä̾ï¤Ïñ¸ì¤Î°ìÉô¤Ë´Þ¤á¤Ê¤¤³ç¸Ì¤Î¤è¤¦¤Êʸ»ú¤ò´Þ¤à¾ì¹ç¤¬¤¢¤ê¤Þ¤¹¡£ ¤³¤Î¤è¤¦¤Ê¾ì¹ç¤Ëñ¸ì¤ÎÊä´°µ¡Ç½¤ò»ÈÍѤ¹¤ë¤¿¤á¤Ë¤Ï¡¢ GDB¥³¥Þ¥ó¥ÉÆâ¤Ë¤ª¤¤¤Æ¡¢ ¤½¤Î¤è¤¦¤Êñ¸ì¤ò' ¡Êñ°ì°úÍÑÉä¡Ë ¤Ç°Ï¤ß¤Þ¤¹¡£

¤³¤Î¤è¤¦¤Ê¤³¤È¤¬É¬Íפˤʤë²ÄǽÀ­¤¬ºÇ¤â¹â¤¤¤Î¤Ï¡¢ C++´Ø¿ô̾¤òÆþÎϤ¹¤ë¤È¤­¤Ç¤·¤ç¤¦¡£ ¤³¤ì¤Ï¡¢ C++¤¬´Ø¿ô¤Î¥ª¡¼¥Ð¡¼¥í¡¼¥Ç¥£¥ó¥° ¡Ê°ú¿ô¤Î·¿¤Î°ã¤¤¤Ë¤è¤Ã¤Æ¼±Ê̤µ¤ì¤ë¡¢ Ʊ°ì¤Î̾Á°¤ò»ý¤Ä´Ø¿ô¤ÎÊ£¿ô¤ÎÄêµÁ¡Ë ¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤ë¤«¤é¤Ç¤¹¡£ Î㤨¤Ð¡¢ ´Ø¿ôname¤Ë¥Ö¥ì¥¤¥¯¥Ý¥¤¥ó¥È¤òÀßÄꤹ¤ë¾ì¹ç¡¢ ¤½¤ì¤¬int·¿¤Î¥Ñ¥é¥á¡¼¥¿¤ò¼è¤ëname(int)¤Ê¤Î¤«¡¢ ¤½¤ì¤È¤âfloat·¿¤Î¥Ñ¥é¥á¡¼¥¿¤ò¼è¤ëname(float)¤Ê¤Î¤«¤ò¤Ï¤Ã¤­¤ê¤µ¤»¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£ ¤³¤Î¤è¤¦¤Ê¾ì¹ç¤Ëñ¸ì¤ÎÊä´°µ¡Ç½¤ò»ÈÍѤ¹¤ë¤Ë¤Ï¡¢ ñ°ì°úÍÑÉä'¤ò´Ø¿ô̾¤ÎÁ°¤ËÆþÎϤ·¤Þ¤¹¡£ ¤³¤¦¤¹¤ë¤³¤È¤Ë¤è¤Ã¤Æ¡¢ TAB¥­¡¼¤Þ¤¿¤ÏM-?¥­¡¼¤¬²¡¤µ¤ì¤ÆÃ±¸ìÊä´°¤¬Í׵ᤵ¤ì¤¿¤È¤­¤Ë¡¢ Êä´°¸õÊä¤Î·èÄê¤Ë¤ÏÄ̾ï¤è¤ê¤â¿¤¯¤Î¤³¤È¤ò¸¡Æ¤¤¹¤ëɬÍפΤ¢¤ë¤³¤È¤¬GDB¤ËÄÌÃΤµ¤ì¤Þ¤¹¡£

(gdb) b 'bubble( M-?
bubble(double,double)    bubble(int,int)
(gdb) b 'bubble(

¾ì¹ç¤Ë¤è¤Ã¤Æ¤Ï¡¢ ̾Á°¤ÎÊä´°¤ò¤¹¤ë¤Ë¤Ï°úÍÑÉä¤ò»ÈÍѤ¹¤ëɬÍפ¬¤¢¤ë¤È¤¤¤¦¤³¤È¤ò¡¢ GDB¤¬¼«Ê¬¤Çǧ¼±¤Ç¤­¤ë¤³¤È¤â¤¢¤ê¤Þ¤¹¡£ ¤³¤Î¤è¤¦¤Ê¾ì¹ç¡¢ ¥æ¡¼¥¶¤¬°úÍÑÉä¤òÆþÎϤ·¤Æ¤¤¤Ê¤¯¤Æ¤â¡¢ GDB¤¬ ¡Ê²Äǽ¤Ê¸Â¤êÊä´°¤ò¹Ô¤¤¤Ä¤Ä¡Ë °úÍÑÉä¤òÁÞÆþ¤·¤Æ¤¯¤ì¤Þ¤¹¡£

(gdb) b bub TAB
GDB¤ÏÆþÎϤµ¤ì¤¿1¹Ô¤ò°Ê²¼¤Î¤è¤¦¤ËÊѹ¹¤·¡¢
¥Ù¥ë²»¤òÌĤ餷¤Þ¤¹¡£
(gdb) b 'bubble(

°ìÈÌŪ¤Ë¤Ï¡¢ ¥ª¡¼¥Ð¡¼¥í¡¼¥É¤µ¤ì¤¿¥·¥ó¥Ü¥ë¤ËÂФ·¤ÆÊä´°¤¬Í׵ᤵ¤ì¤¿ºÝ¤Ë°ú¿ô¥ê¥¹¥È¤¬¤Þ¤ÀÆþÎϤµ¤ì¤Æ¤¤¤Ê¤¤¤È¡¢ GDB¤Ï¡¢ °úÍÑÉ䤬ɬÍפǤ¢¤ë¤ÈȽÃǤ·¤Þ¤¹ ¡Ê¤½¤·¤Æ¼ÂºÝ¤ËÁÞÆþ¤·¤Þ¤¹¡Ë¡£

¥ª¡¼¥Ð¡¼¥í¡¼¥É¤µ¤ì¤¿´Ø¿ô¤Ë´Ø¤¹¤ë¾ðÊó¤Ë¤Ä¤¤¤Æ¤Ï¡¢ see C++ expressions¡£ ¥³¥Þ¥ó¥Éset overload-resolution off¤ò»ÈÍѤ¹¤ì¤Ð¡¢ ¥ª¡¼¥Ð¡¼¥í¡¼¥É¤Î²ò·è¤ò̵¸ú²½¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£ see GDB features for C++¡£