Next: , Previous: Continuing and Stepping, Up: Stopping   [Contents][Index]


5.3 ¥·¥°¥Ê¥ë

¥·¥°¥Ê¥ë¤Ï¡¢ ¥×¥í¥°¥é¥àÆâ¤ÇȯÀ¸¤¹¤ëÈ󯱴ü¥¤¥Ù¥ó¥È¤Ç¤¹¡£ ¥ª¥Ú¥ì¡¼¥Æ¥£¥ó¥°¡¦¥·¥¹¥Æ¥à¤Ë¤è¤Ã¤Æ¡¢ »ÈÍѲÄǽ¤Ê¥·¥°¥Ê¥ë¤Î¼ïÎबÄêµÁ¤µ¤ì¡¢ ¤½¤ì¤¾¤ì¤Ë̾Á°¤ÈÈֹ椬³ä¤êÅö¤Æ¤é¤ì¤Þ¤¹¡£ Î㤨¤Ð¡¢ UNIX¤Ë¤ª¤¤¤Æ¤Ï¡¢ ³ä¤ê¹þ¤ß ¡ÊÄ̾ï¤Ï¡¢Ctrl¥­¡¼¤ò²¡¤·¤Ê¤¬¤éC¤ò²¡¤¹¡Ë ¤òÆþÎϤ·¤¿¤È¤­¤Ë¥×¥í¥°¥é¥à¤¬¼õ¿®¤¹¤ë SIGINT¡¢ ¤½¤Î»ÈÍÑÎΰ褫¤é¤«¤±Î¥¤ì¤¿¥á¥â¥ê°è¤ò»²¾È¤·¤¿¤È¤­¤Ë¥×¥í¥°¥é¥à¤¬¼õ¿®¤¹¤ëSIGSEGV¡¢ ¥¢¥é¡¼¥à¤Î¥¿¥¤¥à¥¢¥¦¥È»þ¤ËȯÀ¸¤¹¤ë ¡Ê¥×¥í¥°¥é¥à¤«¤é¥¢¥é¡¼¥à¤òÍ׵ᤷ¤¿¾ì¹ç¤Ë¤Î¤ßȯÀ¸¤¹¤ë¡Ë SIGALRM¥·¥°¥Ê¥ë¤Ê¤É¤¬¤¢¤ê¤Þ¤¹¡£

SIGALRM¤Ê¤É¡¢ ¤¤¤¯¤Ä¤«¤Î¥·¥°¥Ê¥ë¤Ï¡¢ ¥×¥í¥°¥é¥à¤ÎÀµ¾ï¤Êµ¡Ç½¤Î°ìÉô¤Ç¤¹¡£ SIGSEGV¤Ê¤É¤Î¾¤Î¥·¥°¥Ê¥ë¤Ï¡¢ ¥¨¥é¡¼¤ò°ÕÌ£¤·¤Þ¤¹¡£ ¤³¤ì¤é¤Î¥·¥°¥Ê¥ë¤Ï¡¢ ¥×¥í¥°¥é¥à¤¬»öÁ°¤Ë¤½¤ì¤ò½èÍý¤¹¤ë²¿¤é¤«¤ÎÊýË¡¤ò»ØÄꤷ¤Ê¤¤¤È¡¢ Ã×̿Ū¤Ê ¡Ê¥×¥í¥°¥é¥à¤ò¨ºÂ¤Ë½ªÎ»¤µ¤»¤ë¡Ë ¤â¤Î¤È¤Ê¤ê¤Þ¤¹¡£ SIGINT¤Ï¥æ¡¼¥¶¡¦¥×¥í¥°¥é¥àÆâÉô¤Î¥¨¥é¡¼¤ò°ÕÌ£¤¹¤ë¤â¤Î¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó¤¬¡¢ Ä̾ï¤ÏÃ×̿Ū¤Ê¤â¤Î¤Ç¤¢¤ê¡¢ ³ä¤ê¹þ¤ß¤ÎÌÜŪ¤Ç¤¢¤ë¥×¥í¥°¥é¥à¤Î½ªÎ»¤ò¼Â¸½¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£

GDB¤Ï¡¢ ¥æ¡¼¥¶¡¦¥×¥í¥°¥é¥àÆâÉô¤Ë¤ª¤±¤ëǤ°Õ¤Î¥·¥°¥Ê¥ëȯÀ¸¤ò¸¡½Ð¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£ ¥æ¡¼¥¶¤Ï¡¢ ¸Ä¡¹¤Î¥·¥°¥Ê¥ë¤ÎȯÀ¸»þ¤Ë²¿¤ò¼Â¹Ô¤¹¤ë¤«¤ò¡¢ GDB¤ËÂФ·¤Æ»öÁ°¤Ë»ØÄꤹ¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£

Ä̾ïGDB¤Ï¡¢ SIGALRM¤Î¤è¤¦¤Ê¥¨¥é¡¼¤Ç¤Ï¤Ê¤¤¥·¥°¥Ê¥ë¤ò̵»ë¤¹¤ë¤è¤¦ ¡Ê¤³¤ì¤é¤Î¥·¥°¥Ê¥ë¤¬¥æ¡¼¥¶¡¦¥×¥í¥°¥é¥à¤ÎÃæ¤Ç»ý¤Ã¤Æ¤¤¤ëÌò³ä¤ò˸³²¤¹¤ë¤³¤È¤Î¤Ê¤¤¤è¤¦¡Ë ÀßÄꤵ¤ì¤Æ¤¤¤Þ¤¹¡£ ¤½¤Î°ìÊý¤Ç¡¢ ¥¨¥é¡¼¤Î¥·¥°¥Ê¥ë¤¬È¯À¸¤·¤¿¾ì¹ç¤Ë¤Ï¤¹¤°¤Ë¥æ¡¼¥¶¡¦¥×¥í¥°¥é¥à¤òÄä»ß¤µ¤»¤ë¤è¤¦ÀßÄꤵ¤ì¤Æ¤¤¤Þ¤¹¡£ ¤³¤ì¤é¤ÎÀßÄê¤Ïhandle¥³¥Þ¥ó¥É¤Ë¤è¤Ã¤ÆÊѹ¹¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£

info signals

¤¹¤Ù¤Æ¤Î¥·¥°¥Ê¥ë¤ò°ìÍ÷¤Ë¤·¤ÆÉ½¼¨¤·¤Þ¤¹¡£ ¤Þ¤¿¡¢ ¸Ä¡¹¤Î¥·¥°¥Ê¥ë¤Ë¤Ä¤¤¤Æ¡¢ GDB¤¬¤½¤ì¤ò¤É¤Î¤è¤¦¤Ë½èÍý¤¹¤ë¤è¤¦ÀßÄꤵ¤ì¤Æ¤¤¤ë¤«¤òɽ¼¨¤·¤Þ¤¹¡£ ¤³¤Î¥³¥Þ¥ó¥É¤ò»ÈÍѤ·¤Æ¡¢ ÄêµÁºÑ¤ß¤Î¤¹¤Ù¤Æ¤Î¥·¥°¥Ê¥ë¤Î¥·¥°¥Ê¥ëÈÖ¹æ¤òÃΤ뤳¤È¤¬¤Ç¤­¤Þ¤¹¡£

info handle¤Ï¡¢ info signals¤ËÂФ·¤ÆÀßÄꤵ¤ì¤¿¿·¤·¤¤ÊÌ̾¤Ç¤¹¡£

handle signal keywords

GDB¤¬signal¤Ç»ØÄꤵ¤ì¤ë¥·¥°¥Ê¥ë¤ò½èÍý¤¹¤ëÊýË¡¤òÊѹ¹¤·¤Þ¤¹¡£ signal¤Ë¤Ï¡¢ ¥·¥°¥Ê¥ëÈÖ¹æ¤Þ¤¿¤Ï¥·¥°¥Ê¥ë̾¾Î ¡ÊÀèÆ¬¤Î‘SIG’¤Ï¾Êά²Äǽ¡Ë ¤ò»ØÄꤷ¤Þ¤¹¡£ ¥­¡¼¥ï¡¼¥Ékeywords¤Ë¤è¤Ã¤Æ¡¢ ¤É¤Î¤è¤¦¤ËÊѹ¹¤¹¤ë¤«¤ò»ØÄꤷ¤Þ¤¹¡£

handle¥³¥Þ¥ó¥É¤¬¼õ¤±ÉÕ¤±¤ë¥­¡¼¥ï¡¼¥É¤Ë¤Ï¾Êά·Á¤ò»ÈÍѤ¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£ ¾Êά¤·¤Ê¤¤¾ì¹ç¡¢ ¥­¡¼¥ï¡¼¥É¤Ï°Ê²¼¤Î¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¡£

nostop

GDB¤ËÂФ·¤Æ¡¢ ¤³¤Î¥·¥°¥Ê¥ë¤¬È¯À¸¤·¤Æ¤â¥æ¡¼¥¶¡¦¥×¥í¥°¥é¥à¤òÄä»ß¤·¤Ê¤¤¤è¤¦»Ø¼¨¤·¤Þ¤¹¡£ GDB¤Ï¡¢ ¥·¥°¥Ê¥ë¤ò¼õ¿®¤·¤¿¤³¤È¤ò¥á¥Ã¥»¡¼¥¸½ÐÎϤˤè¤Ã¤Æ¥æ¡¼¥¶¤ËÄÌÃΤ¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£

stop

GDB¤ËÂФ·¤Æ¡¢ ¤³¤Î¥·¥°¥Ê¥ë¤¬È¯À¸¤¹¤ë¤È¥æ¡¼¥¶¡¦¥×¥í¥°¥é¥à¤òÄä»ß¤¹¤ë¤è¤¦»Ø¼¨¤·¤Þ¤¹¡£ ¤³¤ì¤Ï¡¢ print¥­¡¼¥ï¡¼¥É¤ò°ÅÌۤΤ¦¤Á¤Ë´Þ¤ß¤Þ¤¹¡£

print

GDB¤ËÂФ·¤Æ¡¢ ¤³¤Î¥·¥°¥Ê¥ë¤¬È¯À¸¤¹¤ë¤È¥á¥Ã¥»¡¼¥¸¤òɽ¼¨¤¹¤ë¤è¤¦»Ø¼¨¤·¤Þ¤¹¡£

noprint

GDB ¤ËÂФ·¤Æ¡¢ ¤³¤Î¥·¥°¥Ê¥ë¤¬È¯À¸¤·¤¿¤³¤È¤òÃΤ餻¤Ê¤¤¤è¤¦»Ø¼¨¤·¤Þ¤¹¡£ ¤³¤ì¤Ï¡¢ nostop¥­¡¼¥ï¡¼¥É¤ò°ÅÌۤΤ¦¤Á¤Ë´Þ¤ß¤Þ¤¹¡£

pass

GDB¤ËÂФ·¤Æ¡¢ ¤³¤Î¥·¥°¥Ê¥ë¤ÎȯÀ¸¤ò¥æ¡¼¥¶¡¦¥×¥í¥°¥é¥à¤¬¸¡½Ð¤Ç¤­¤ë¤è¤¦¤Ë¤¹¤ë¤è¤¦»Ø¼¨¤·¤Þ¤¹¡£ ¥æ¡¼¥¶¡¦¥×¥í¥°¥é¥à¤Ï¥·¥°¥Ê¥ë¤ò½èÍý¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£ Ã×̿Ū¤Ç½èÍý¤Ç¤­¤Ê¤¤¥·¥°¥Ê¥ë¤¬È¯À¸¤·¤¿¾ì¹ç¡¢ ¥æ¡¼¥¶¡¦¥×¥í¥°¥é¥à¤ÏÄä»ß¤¹¤ë¤«¤â¤·¤ì¤Þ¤»¤ó¡£

nopass

GDB¤ËÂФ·¤Æ¡¢ ¤³¤Î¥·¥°¥Ê¥ë¤ÎȯÀ¸¤ò¥æ¡¼¥¶¡¦¥×¥í¥°¥é¥à¤¬¸¡½Ð¤Ç¤­¤Ê¤¤¤è¤¦¤Ë¤¹¤ë¤è¤¦»Ø¼¨¤·¤Þ¤¹¡£

¥·¥°¥Ê¥ë¤Ë¤è¤Ã¤Æ¥æ¡¼¥¶¡¦¥×¥í¥°¥é¥à¤¬Ää»ß¤·¤¿¾ì¹ç¡¢ ¼Â¹Ô¤ò·Ñ³¤¹¤ë¤Þ¤Ç¤½¤Î¥·¥°¥Ê¥ë¤Ï¸¡½Ð¤µ¤ì¤Þ¤»¤ó¡£ ¤½¤Î»þÅÀ¤Ë¤ª¤¤¤Æ¡¢ ¤½¤Î¥·¥°¥Ê¥ë¤ËÂФ·¤Æpass¥­¡¼¥ï¡¼¥É¤¬Í­¸ú¤Ç¤¢¤ì¤Ð¡¢ ¥æ¡¼¥¶¡¦¥×¥í¥°¥é¥à¤Ï¡¢ ¼Â¹Ô·Ñ³»þ¤Ë¥·¥°¥Ê¥ë¤ò¸¡½Ð¤·¤Þ¤¹¡£ ¸À¤¤´¹¤¨¤ì¤Ð¡¢ GDB¤¬¥·¥°¥Ê¥ë¤ÎȯÀ¸¤òÊó¹ð¤·¤Æ¤­¤¿¤È¤­¡¢ handle¥³¥Þ¥ó¥É¤Ëpass¥­¡¼¥ï¡¼¥É¤Þ¤¿¤Ïnopass¥­¡¼¥ï¡¼¥É¤ò»ØÄꤹ¤ë¤³¤È¤Ç¡¢ ¼Â¹Ô¤ò·Ñ³¤·¤¿¤È¤­¤Ë¥×¥í¥°¥é¥à¤Ë¤½¤Î¥·¥°¥Ê¥ë¤ò¸¡½Ð¤µ¤»¤ë¤«Èݤ«¤òÀ©¸æ¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£

¤Þ¤¿¡¢ signal¥³¥Þ¥ó¥É¤ò»ÈÍѤ¹¤ë¤³¤È¤Ë¤è¤Ã¤Æ¡¢ ¥æ¡¼¥¶¡¦¥×¥í¥°¥é¥à¤¬¥·¥°¥Ê¥ë¤ò¸¡½Ð¤Ç¤­¤Ê¤¤¤è¤¦¤Ë¤·¤¿¤ê¡¢ Ä̾ï¤Ï¸¡½Ð¤Ç¤­¤Ê¤¤¥·¥°¥Ê¥ë¤ò¸¡½Ð¤Ç¤­¤ë¤è¤¦¤Ë¤·¤¿¤ê¡¢ ¤¢¤ë¤¤¤ÏǤ°Õ¤Î»þÅÀ¤ÇǤ°Õ¤Î¥·¥°¥Ê¥ë¤ò¥æ¡¼¥¶¡¦¥×¥í¥°¥é¥à¤Ë¸¡½Ð¤µ¤»¤¿¤ê¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£ Î㤨¤Ð¡¢ ¥æ¡¼¥¶¡¦¥×¥í¥°¥é¥à¤¬²¿¤é¤«¤Î¥á¥â¥ê»²¾È¥¨¥é¡¼¤Ë¤è¤Ã¤ÆÄä»ß¤·¤¿¾ì¹ç¡¢ ¥æ¡¼¥¶¤Ï¡¢ ¤µ¤é¤Ë¼Â¹Ô¤ò·Ñ³¤·¤è¤¦¤È¤·¤Æ¡¢ ÌäÂê¤Î¤¢¤ëÊÑ¿ô¤ËÀµ¤·¤¤ÃͤòÀßÄꤷ¤Æ·Ñ³¼Â¹Ô¤·¤è¤¦¤È¤¹¤ë¤«¤â¤·¤ì¤Þ¤»¤ó¡£ ¤·¤«¤·¡¢ ¼Â¹Ô·Ñ³ľ¸å¤Ë¸¡½Ð¤µ¤ì¤ëÃ×̿Ū¤Ê¥·¥°¥Ê¥ë¤Î¤¿¤á¤Ë¡¢ ¤ª¤½¤é¤¯¥æ¡¼¥¶¡¦¥×¥í¥°¥é¥à¤Ï¤¹¤°¤Ë½ªÎ»¤·¤Æ¤·¤Þ¤¦¤Ç¤·¤ç¤¦¡£ ¤³¤Î¤è¤¦¤Ê¤³¤È¤ò²óÈò¤·¤¿¤±¤ì¤Ð¡¢ ‘signal 0¥³¥Þ¥ó¥É¤Ë¤è¤Ã¤Æ¼Â¹Ô¤ò·Ñ³¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£ See Giving your program a signal¡£