dbx
¥Ç¥Ð¥Ã¥¬¤Ï¡¤¥³¥Þ¥ó¥É¹Ô¥×¥í¥°¥é¥à¤Ç¤¹¡£
¤³¤ì¤Ï¡¤¥½¡¼¥¹¡¦¥³¡¼¥É¡¦¥ì¥Ù¥ë¤ª¤è¤Óµ¡³£¸ì¥³¡¼¥É¡¦¥ì¥Ù¥ë¤Î¥×¥í¥°¥é¥à¡¦¥Ç¥Ð¥Ã¥°ÍѤΥġ¼¥ë¤Ç¤¢¤ê¡¤C ¸À¸ì¡¤Fortran¡¤Pascal¡¤¥¢¥»¥ó¥Ö¥ê¸À¸ì¤Ç»ÈÍѤ¹¤ë¤³¤È¤¬¤Ç¤¤Þ¤¹¡£
dbx
¤òµ¯Æ°¤·¤¿¸å¤Ë¡¤dbx
¥³¥Þ¥ó¥É¤òÆþÎϤ·¤Æ¼Â¹Ô¤ÎÀ©¸æ¤ª¤è¤Ó¥È¥ì¡¼¥¹¡¤ÊÑ¿ô¤ª¤è¤Ó¼°¤ÎÃͤÎɽ¼¨¡¤¥½¡¼¥¹¡¦¥Õ¥¡¥¤¥ë¤Îɽ¼¨¤ª¤è¤ÓÊÔ½¸¤ò¹Ô¤¦¤³¤È¤¬¤Ç¤¤Þ¤¹¡£
ÂåÂØ¥Ç¥Ð¥Ã¥¬¤Î
ladebug
¥Ç¥Ð¥Ã¥¬¤Ï¡¤¥³¥Þ¥ó¥É¹Ô¤ª¤è¤Ó¥°¥é¥Õ¥£¥«¥ë¡¦¥æ¡¼¥¶¡¦¥¤¥ó¥¿¥Õ¥§¡¼¥¹ (GUI) ¤ÎξÊý¤òÄ󶡤·¤Æ¤¤¤Þ¤¹¡£
dbx
¤Ç¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤Ê¤¤¸À¸ì¤ò¤¤¤¯¤Ä¤«¥µ¥Ý¡¼¥È¤¹¤ë¤È¤È¤â¤Ë¡¤ladebug
¥Ç¥Ð¥Ã¥¬¤Ç¤Ï¥Þ¥ë¥Á¥¹¥ì¥Ã¥É¡¦¥×¥í¥°¥é¥à¤Î¥Ç¥Ð¥Ã¥°µ¡Ç½¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤Þ¤¹¡£
ladebug
¤Ë¤Ä¤¤¤Æ¤Î¾ÜºÙ¤Ï¡¤¡ØLadebug Debugger Manual¡Ù¤Þ¤¿¤Ï
ladebug
(1)
¤³¤Î¾Ï¤Ç¤Ï¡¤¼¡¤Î¹àÌܤˤĤ¤¤ÆÀâÌÀ¤ò¹Ô¤¤¤Þ¤¹¡£
¥Ç¥Ð¥Ã¥°¤Î°ìÈÌŪ¤Êα°Õ»ö¹à (5.1 Àá)
dbx
¥Ç¥Ð¥Ã¥¬¤Î¼Â¹Ô (5.2 Àá)
dbx
¥³¥Þ¥ó¥É¤Î»ÈÍÑÊýË¡ (5.3 Àá)
dbx
¥â¥Ë¥¿¤¬Ä󶡤¹¤ë¥ª¥×¥·¥ç¥ó¤Ë¤è¤ë
dbx
¥³¥Þ¥ó¥É¤ÎÆþÎÏ (5.4 Àá)
dbx
¤ÎÀ©¸æ (5.5 Àá)
¥½¡¼¥¹¡¦¥³¡¼¥É¤Èµ¡³£¸ì¥³¡¼¥É¤Î³Îǧ (5.6 Àá)
¥Ç¥Ð¥Ã¥°Ãæ¤Î¥×¥í¥°¥é¥à¤Î¼Â¹Ô¤ÎÀ©¸æ (5.7 Àá)
¥Ö¥ì¡¼¥¯¥Ý¥¤¥ó¥È¤ÎÀßÄê (5.8 Àá)
¥×¥í¥°¥é¥à¤Î¾õÂ֤γÎǧ (5.9 Àá)
Ê£¿ô¤Î¥³¥¢¡¦¥Õ¥¡¥¤¥ë¤ÎÊݸ (5.10 Àá)
¼Â¹ÔÃæ¤Î¥×¥í¥»¥¹¤Î¥Ç¥Ð¥Ã¥° (5.11 Àá)
¥Þ¥ë¥Á¥¹¥ì¥Ã¥É¡¦¥×¥í¥»¥¹¤Î¥Ç¥Ð¥Ã¥° (5.12 Àá)
Ê£¿ô¤ÎÈ󯱴ü¥×¥í¥»¥¹¤Î¥Ç¥Ð¥Ã¥° (5.13 Àá)
¤³¤Î¾ÏÁ´ÂΤÎÎã¤Ç»²¾È¤µ¤ì¤Æ¤¤¤ë C ¤Î¥µ¥ó¥×¥ë¡¦¥×¥í¥°¥é¥à
sam.c
(5.14 Àá)
dbx
¥³¥Þ¥ó¥É¹Ô¥ª¥×¥·¥ç¥ó¡¤dbx
¥³¥Þ¥ó¥É¡¤ÊÑ¿ô¤Ê¤É¤Ë¤Ä¤¤¤Æ¤Î¾Ü¤·¤¤ÀâÌÀ¤Ï¡¤
dbx
(1)
Visual Threads (¡ÖAssociated Products Volume 1¡×CD-ROM ¤ÇÄó¶¡) ¤ò»ÈÍѤ·¤Æ¤â¡¤ÏÀÍý¤ª¤è¤ÓÀǽ¾å¤ÎÌäÂ꤬¤Ê¤¤¤«¤É¤¦¤«¤Ë¤Ä¤¤¤Æ¡¤¥Þ¥ë¥Á¥¹¥ì¥Ã¥É¡¦¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤òʬÀϤ¹¤ë¤³¤È¤¬¤Ç¤¤Þ¤¹¡£ Visual Threads ¤Ï¡¤POSIX Threads Library ¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤ª¤è¤Ó Java ¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ç»ÈÍѤ¹¤ë¤³¤È¤¬¤Ç¤¤Þ¤¹¡£
¤³¤Î¾Ï¤ÎÎã¤Ç¤Ï¥µ¥ó¥×¥ë¡¦¥×¥í¥°¥é¥à
sam
¤ò°úÍѤ·¤Þ¤¹¡£
C ¸À¸ì¤Î¥½¡¼¥¹¡¦¥×¥í¥°¥é¥à
sam.c
¤Ï¡¤Îã 5-1
¤Ë¼¨¤·¤Æ¤¢¤ê¤Þ¤¹¡£
¤³¤Î¾Ï¤Î¥³¥Þ¥ó¥ÉÄêµÁ¤Ç¤Ï¡¤Ëܽñ¤Î¤Þ¤¨¤¬¤¤ÇÀâÌÀ¤·¤¿É½µË¡¤Î¤Û¤«¤Ë¡¤É½ 5-1¤ÇÀâÌÀ¤¹¤ë¥¡¼¥ï¡¼¥É¤ò»ÈÍѤ·¤Þ¤¹¡£
Âçʸ»ú¤ÎÆÃÄê¸ì¤Ï¡¤ÆÃÄê¤Îµ¬Â§¤¬Å¬ÍѤµ¤ì¤ëÊÑ¿ô¤ò¼¨¤·¤Þ¤¹¡£
ɽ 5-1: ¥³¥Þ¥ó¥É¹½Ê¸¤Îµ½Ò¤Ë»ÈÍѤµ¤ì¤ë¥¡¼¥ï¡¼¥É
¥¡¼¥ï¡¼¥É | ÃÍ |
ADDRESS |
¥Þ¥·¥ó¡¦¥¢¥É¥ì¥¹¤ò»ØÄꤹ¤ëǤ°Õ¤Î¼°¡£ |
COMMAND_LIST |
¥»¥ß¥³¥í¥ó¤Ç¶èÀÚ¤é¤ì¤¿ 1 ¤Ä¤Þ¤¿¤ÏÊ£¿ô¤Î¥³¥Þ¥ó¥É¡£ |
DIR |
¥Ç¥£¥ì¥¯¥È¥ê̾¡£ |
EXP |
dbx
¥³¥Þ¥ó¥É¤Î¥×¥í¥°¥é¥àÊÑ¿ô̾¤ò´Þ¤àǤ°Õ¤Î¼°¡£
¼°¤Ë¤Ï
($listwindow
+
2)
¤Î¤è¤¦¤Ë
dbx
ÊÑ¿ô¤ò»ØÄꤹ¤ë¤³¤È¤¬¤Ç¤¤ë¡£
¼°¤ÇÊÑ¿ô̾
in ¡¤to ¡¤¤Þ¤¿¤Ï
at
¤ò»ÈÍѤ¹¤ë¾ì¹ç¤Ï¡¤¥«¥Ã¥³¤Ç°Ï¤àɬÍפ¬¤¢¤ë¡£
¥«¥Ã¥³¤Ç°Ï¤Þ¤Ê¤±¤ì¤Ð¡¤¤³¤ì¤é¤Î¸ì¤Ï¥Ç¥Ð¥Ã¥¬¡¦¥¡¼¥ï¡¼¥É¤È¤ß¤Ê¤µ¤ì¤ë¡£ |
FILE |
¥Õ¥¡¥¤¥ë̾¡£ |
INT |
À°¿ôÃÍ¡£ |
LINE |
¥½¡¼¥¹¡¦¥³¡¼¥É¤Î¹ÔÈֹ档 |
NAME |
dbx
¥³¥Þ¥ó¥É¤Î̾Á°¡£ |
PROCEDURE |
¥¹¥¿¥Ã¥¯¾å¤Ë¤¢¤ë¥×¥í¥·¡¼¥¸¥ã̾¤Þ¤¿¤Ï¥¢¥¯¥Æ¥£¥Ö²½¥ì¥Ù¥ë¡£ |
REGEXP |
Àµµ¬É½¸½¤Îʸ»úÎó¡£
ed (1) |
SIGNAL |
¥·¥¹¥Æ¥à¡¦¥·¥°¥Ê¥ë¡£
signal (2) |
STRING |
Ǥ°Õ¤Î ASCII ʸ»úÎó¡£ |
VAR |
͸ú¤Ê¥×¥í¥°¥é¥àÊÑ¿ô¤Þ¤¿¤ÏÄêµÁºÑ¤ß¤Î
dbx
ÊÑ¿ô¡£
ɽ 5-8
¤ò»²¾È¡£
µ¡³£¸ì¥ì¥Ù¥ë¤Î¥Ç¥Ð¥Ã¥°¤Ç¤Ï¡¤VAR
¤Ë¤Ï¥¢¥É¥ì¥¹¤â»ØÄê²Ä¡£
5.3.2 ¹à¤ÇÀâÌÀ¤¹¤ë¤è¤¦¤Ë¡¤Æó½Å¤Î̾Á°¤ò»ÈÍѤ·¤Æ¥×¥í¥°¥é¥àÊÑ¿ô¤ò»ØÄꤷ¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ |
¥³¥Þ¥ó¥É¤ËÂçʸ»ú¤ò»ÈÍѤ¹¤ëÎã¤ò¼¡¤Ë¼¨¤·¤Þ¤¹¡£
(dbx) stop VAR in PROCEDURE if EXP
Îã¤Î¤è¤¦¤Ë¡¤stop
¡¤in
¡¤¤ª¤è¤Ó
if
¤òÆþÎϤ·¤Þ¤¹¡£
ɽ 5-1
¤ÎÄêµÁ¤Ë½¾¤Ã¤Æ¡¤VAR
¡¤PROCEDURE
¡¤¤ª¤è¤Ó
EXP
¤ËÃͤòÆþÎϤ·¤Æ¤¯¤À¤µ¤¤¡£
Ãí°Õ
ÆÃÄê¤Î
dbx
¥³¥Þ¥ó¥É¤ò³ÈÄ¥¤·¤ÆÈ󯱴ü¥»¥Ã¥·¥ç¥ó¤ÎÀ©¸æ¤ò¹Ô¤¦¤³¤È¤ò´Þ¤á¡¤Ê£¿ô¤ÎÈ󯱴ü¥×¥í¥»¥¹¤Î¥Ç¥Ð¥Ã¥°¤Ë¤Ä¤¤¤Æ¤Ï¡¤5.13 Àá¤ÇÀâÌÀ¤·¤Æ¤¤¤Þ¤¹¡£
5.1 ¥Ç¥Ð¥Ã¥°¤Î°ìÈÌŪ¤Êα°Õ»ö¹à
¤³¤ÎÀá¤Ç¤Ï¡¤dbx
¥Ç¥Ð¥Ã¥¬¤ª¤è¤Ó¥Ç¥Ð¥Ã¥°¤Î³µÇ°¤Î¤¤¤¯¤Ä¤«¤òÀâÌÀ¤·¤Þ¤¹¡£
¤Þ¤¿¡¤¥Ç¥Ð¥Ã¥°¡¦¥»¥Ã¥·¥ç¥ó¤ò¼Â¹Ô¤¹¤ëÊýË¡¤Ë¤Ä¤¤¤Æ¤Ï¡¤¥»¥Ã¥·¥ç¥ó¤ò³«»Ï¤Ç¤¤ë¾õ¶·¡¤¥¨¥é¡¼¤ò¼è¤ê½ü¤¯ÊýË¡¡¤¤ª¤è¤Óµ¯¤³¤·¤ä¤¹¤¤¥¨¥é¡¼¤ò²óÈò¤¹¤ëÊýË¡¤ò´Þ¤á¤ÆÀâÌÀ¤·¤Þ¤¹¡£
¥×¥í¥°¥é¥Þ¤Î·Ð¸³¤¬½½Ê¬¤¢¤ë¾ì¹ç¤Ï¡¤¤³¤ÎÀá¤ò̵»ë¤·¤Æ¤â¹½¤¤¤Þ¤»¤ó¡£
5.1.1 ¥½¡¼¥¹¡¦¥ì¥Ù¥ë¤Î¥Ç¥Ð¥Ã¥¬¤ò»ÈÍѤ¹¤ëÍýͳ
dbx
¥Ç¥Ð¥Ã¥¬¤ò»ÈÍѤ¹¤ë¤È¡¤¥½¡¼¥¹¡¦¥³¡¼¥É¡¦¥ì¥Ù¥ë¤Þ¤¿¤Ïµ¡³£¸ì¥³¡¼¥É¡¦¥ì¥Ù¥ë¤Ç¡¤¥¿¡¼¥²¥Ã¥È¡¦¥×¥í¥°¥é¥à¤ÎÌäÂê¤ò¥È¥ì¡¼¥¹¤¹¤ë¤³¤È¤¬¤Ç¤¤Þ¤¹¡£
dbx
¤ò»ÈÍѤ·¤Æ¡¤¥×¥í¥°¥é¥à¤ÎÀ©¸æ¥Õ¥í¡¼¡¤ÊÑ¿ô¡¤¤ª¤è¤Ó¥á¥â¥ê°ÌÃÖ¤ò´Æ»ë¤·¤Ê¤¬¤é¥×¥í¥°¥é¥à¤Î¼Â¹Ô¤òÀ©¸æ¤·¤Þ¤¹¡£
¤Þ¤¿¡¤Â¾¤Î¿Í¤¬½ñ¤¤¤¿¥×¥í¥°¥é¥à¤òÍý²ò¤¹¤ë¤¿¤á¤Ë¡¤dbx
¤ò»ÈÍѤ·¤Æ¡¤¤½¤Î¥×¥í¥°¥é¥à¤Î¥í¥¸¥Ã¥¯¤ª¤è¤ÓÀ©¸æ¥Õ¥í¡¼¤ò¥È¥ì¡¼¥¹¤¹¤ë¤³¤È¤¬¤Ç¤¤Þ¤¹¡£
5.1.2 ¥¢¥¯¥Æ¥£¥Ö²½¥ì¥Ù¥ë
¥¢¥¯¥Æ¥£¥Ö²½¥ì¥Ù¥ë¤Ï¡¤¥¹¥¿¥Ã¥¯¤Ç¸½ºß¥¢¥¯¥Æ¥£¥Ö¤ÊÈϰϤǡ¤Ä̾ï¤Ï¥¢¥¯¥Æ¥£¥Ö¤Ê¥×¥í¥·¡¼¥¸¥ã¤Ç¤¹¡£
¥¢¥¯¥Æ¥£¥Ö²½¥¹¥¿¥Ã¥¯¤È¤Ï¡¤Ä̾ï
main()
¤È¤¤¤¦ºÇ½é¤Î¥×¥í¥°¥é¥à¤«¤é»Ï¤Þ¤ë¸Æ¤Ó½Ð¤·¤Î¥ê¥¹¥È¤Ç¤¹¡£
°ìÈֺǸå¤Ë¸Æ¤Ó½Ð¤µ¤ì¤¿¥×¥í¥·¡¼¥¸¥ã¤Þ¤¿¤Ï¥Ö¥í¥Ã¥¯¤Ë¤Ï 0 ¤ÎÈֹ椬ÉÕ¤±¤é¤ì¤Þ¤¹¡£
¼¡¤Ë¸Æ¤Ó½Ð¤µ¤ì¤¿¥×¥í¥·¡¼¥¸¥ã¤Ë¤Ï 1 ¤ÎÈֹ椬ÉÕ¤±¤é¤ì¤Þ¤¹¡£
ºÇ¸å¤Î¥¢¥¯¥Æ¥£¥Ö²½¥ì¥Ù¥ë¤Ï¡¤¾ï¤Ë¥á¥¤¥ó¡¦¥×¥í¥·¡¼¥¸¥ã¡¤¤Ä¤Þ¤ê¥×¥í¥°¥é¥àÁ´ÂΤòÀ©¸æ¤¹¤ë¥×¥í¥·¡¼¥¸¥ã¤Ë¤Ê¤ê¤Þ¤¹¡£
¥¢¥¯¥Æ¥£¥Ö²½¥ì¥Ù¥ë¤Ï¤Þ¤¿¡¤¥×¥í¥·¡¼¥¸¥ãÆâ¤Î¥í¡¼¥«¥ëÊÑ¿ô¤òÄêµÁ¤¹¤ë¥Ö¥í¥Ã¥¯¤Ç¹½À®¤¹¤ë¤³¤È¤â¤Ç¤¤Þ¤¹¡£
¥¹¥¿¥Ã¥¯¡¦¥È¥ì¡¼¥¹¤ò¹Ô¤¦ºÝ (where
¤ª¤è¤Ó
tstack
¥Ç¥Ð¥Ã¥¬¡¦¥³¥Þ¥ó¥É¤ò»²¾È) ¤ª¤è¤Ó¥¢¥¯¥Æ¥£¥Ö²½¥¹¥¿¥Ã¥¯Æâ¤ò°Üư¤¹¤ëºÝ (up
¡¤down
¡¤¤ª¤è¤Ó
func
¥Ç¥Ð¥Ã¥¬¡¦¥³¥Þ¥ó¥É¤ò»²¾È) ¤Ë¥¢¥¯¥Æ¥£¥Ö²½¥ì¥Ù¥ë¤¬É½¼¨¤µ¤ì¤Þ¤¹¡£
°Ê²¼¤Ë¡¤where
¥³¥Þ¥ó¥É¤Ç¥¹¥¿¥Ã¥¯¤ò¥È¥ì¡¼¥¹¤·¤¿Îã¤ò¼¨¤·¤Þ¤¹¡£
> 0 prnt(pline = 0x11ffffcb8) ["sam.c":52, 0x120000c04] [1] 1 main(argc = 2, argv = 0x11ffffe08) ["sam.c":45, 0x120000bac] [2] | | | | | | | | | | | [8] | | | | [7] | | | [6] | | [5] | [4] [3]
ºÇ¸å¤Ë¸Æ¤Ó½Ð¤µ¤ì¤¿¥×¥í¥·¡¼¥¸¥ã¤Ï
prnt
¤Ç¤¹¡£
prnt
¤Î¥¢¥¯¥Æ¥£¥Ö²½¥ì¥Ù¥ë¤Ï
0
¤Ê¤Î¤Ç¡¤¤³¤Î´Ø¿ô¤Ï¥¹¥¿¥Ã¥¯¤ÎºÇ¾å°Ì¤Ë¤¢¤ê¤Þ¤¹¡£
[Îã¤ËÌá¤ë]
¥á¥¤¥ó¡¦¥×¥í¥°¥é¥à¤Ï
main
¤Ç¤¹¡£
[Îã¤ËÌá¤ë]
¥¢¥¯¥Æ¥£¥Ö²½¥ì¥Ù¥ëÈÖ¹æ
>
¤Ï¡¤¸½ºßÄ´ººÃæ¤Î¥¢¥¯¥Æ¥£¥Ö²½¥ì¥Ù¥ë¤ò¼¨¤·¤Þ¤¹¡£
[Îã¤ËÌá¤ë]
¥×¥í¥·¡¼¥¸¥ã̾ [Îã¤ËÌá¤ë]
¥×¥í¥·¡¼¥¸¥ã¤Î°ú¿ô [Îã¤ËÌá¤ë]
¥½¡¼¥¹¡¦¥Õ¥¡¥¤¥ë̾ [Îã¤ËÌá¤ë]
¸½ºß¤Î¹ÔÈÖ¹æ [Îã¤ËÌá¤ë]
¸½ºß¤Î¥×¥í¥°¥é¥à¡¦¥«¥¦¥ó¥¿ [Îã¤ËÌá¤ë]
dbx
¥Ç¥Ð¥Ã¥¬¤Ï¡¤¼Â¹Ô»þ¥¨¥é¡¼¤À¤±¤ò¸¡½Ð¤¹¤ë¤¿¤á¡¤¥Ç¥Ð¥Ã¥°¡¦¥»¥Ã¥·¥ç¥ó¤ò³«»Ï¤¹¤ëÁ°¤Ë¡¤¥³¥ó¥Ñ¥¤¥é¡¦¥¨¥é¡¼¤òÄûÀµ¤¹¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£
¼Â¹Ô»þ¥¨¥é¡¼¤È¤Ï¡¤¥×¥í¥°¥é¥à¤¬¡¤¥³¥¢¡¦¥Õ¥¡¥¤¥ë¤òºîÀ®¤·¤Æ¤·¤Þ¤¦¤è¤¦¤Ê¼Â¹ÔÃæ¤Î¾ã³²¡¤¤Þ¤¿¤ÏÉÔÀµ¤Ê¼Â¹Ô·ë²Ì¤ÎºîÀ®¤Ë¤Ä¤Ê¤¬¤ë¤â¤Î¤Ç¤¹¡£
¼Â¹Ô»þ¤Ë°Û¾ï½ªÎ»¤¹¤ë¥×¥í¥°¥é¥à¤ò¥Ç¥Ð¥Ã¥°¤¹¤ëÊýË¡¤È¡¤½ªÎ»¤Þ¤Ç¼Â¹Ô¤Ï¤¹¤ë¤¬¡¤ÉÔÀµ¤Ê¼Â¹Ô·ë²Ì¤ò½ÐÎϤ¹¤ë¥×¥í¥°¥é¥à¤ò¥Ç¥Ð¥Ã¥°¤¹¤ëÊýË¡¤Ï°Û¤Ê¤ê¤Þ¤¹¡£
ÉÔÀµ¤Ê¼Â¹Ô·ë²Ì¤òºîÀ®¤¹¤ë¥×¥í¥°¥é¥à¤ò¥Ç¥Ð¥Ã¥°¤¹¤ëÊýË¡¤Ë¤Ä¤¤¤Æ¤Ï¡¤5.1.4 ¹à¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£
¼Â¹Ô»þ¤Ë¥×¥í¥°¥é¥à¤¬°Û¾ï½ªÎ»¤¹¤ë¾ì¹ç¤Ë¤Ï¡¤1 ¹Ô¤º¤Ä¥Ç¥Ð¥Ã¥°¤¹¤ë¤Î¤Ç¤Ï¤Ê¤¯¡¤¼¡¤ÎÊýË¡¤ò»ÈÍѤ·¤Æ¥Ç¥Ð¥Ã¥°¡¦¥»¥Ã¥·¥ç¥ó¤ò³«»Ï¤¹¤ë¤È¡¤Ä̾ï¤Ï»þ´Ö¤òÀáÌ󤹤뤳¤È¤¬¤Ç¤¤Þ¤¹¡£
dbx
¤«¤é¥×¥í¥°¥é¥à¤ò¸Æ¤Ó½Ð¤¹¡£
dbx
¥³¥Þ¥ó¥É¹Ô¤Ç¡¤Å¬Àڤʥª¥×¥·¥ç¥ó¡¤¼Â¹Ô²Äǽ¥Õ¥¡¥¤¥ë¡¤¤ª¤è¤Ó¥³¥¢¡¦¥À¥ó¥×¡¦¥Õ¥¡¥¤¥ë¤ò»ØÄꤷ¤Þ¤¹¡£
where
¥³¥Þ¥ó¥É¤ò»ÈÍѤ·¤Æ¥¹¥¿¥Ã¥¯¡¦¥È¥ì¡¼¥¹¤ò¹Ô¤¤¡¤¾ã³²¤Î°ÌÃÖ¤òÆÃÄꤹ¤ë¡£
Ãí°Õ
¥ª¥Ö¥¸¥§¥¯¥È¡¦¥Õ¥¡¥¤¥ë¤«¤é¥·¥ó¥Ü¥ë¡¦¥Æ¡¼¥Ö¥ë¤Î¾ðÊó¤òºï½ü¤·¤Æ¤¤¤Ê¤¤¾ì¹ç¤Ï¡¤Åö³º¥×¥í¥°¥é¥à¤¬
-g
¥Ç¥Ð¥Ã¥°¡¦¥ª¥×¥·¥ç¥ó¤Ç¥³¥ó¥Ñ¥¤¥ë¤µ¤ì¤Æ¤¤¤Ê¤¯¤Æ¤â¡¤¥¹¥¿¥Ã¥¯¡¦¥È¥ì¡¼¥¹¤ò¹Ô¤¦¤³¤È¤¬¤Ç¤¤Þ¤¹¡£
stop
¤¢¤ë¤¤¤Ï
stopi
¥³¥Þ¥ó¥É¤ò»ÈÍѤ·¤Æ¥Ö¥ì¡¼¥¯¥Ý¥¤¥ó¥È¤òÀßÄꤷ¡¤¥¨¥é¡¼¤òʬΥ¤¹¤ë¡£
print
¥³¥Þ¥ó¥É¤ò»ÈÍѤ·¤ÆÊÑ¿ô¤ÎÃͤòɽ¼¨¤·¡¤ÊÑ¿ô¤ËÉÔÀµ¤ÊÃͤ¬³ä¤êÅö¤Æ¤é¤ì¤¿²Õ½ê¤òÄ´¤Ù¤ë¡£
¤³¤Î»þÅÀ¤Ç¤Þ¤À¥¨¥é¡¼¤òȯ¸«¤Ç¤¤Ê¤¤¾ì¹ç¤Ë¤Ï¡¤¤³¤Î¾Ï¤ÇÀâÌÀ¤·¤Æ¤¤¤ë¾¤Î
dbx
¥³¥Þ¥ó¥É¤ò»ÈÍѤ·¤Æ¤¯¤À¤µ¤¤¡£
5.1.4 ÉÔÀµ¤Î½ÐÎÏ·ë²Ì¤Î¸¶°øÊ¬ÀÏ
¥×¥í¥°¥é¥à¤¬½ªÎ»¤Þ¤Ç¼Â¹Ô¤·¤Æ¤â¡¤ÉÔÀµ¤ÊÃͤޤ¿¤Ï½ÐÎϤ¬À¸À®¤µ¤ì¤ë¾ì¹ç¤Ë¤Ï¡¤¼¡¤Î¼ê½ç¤Ë½¾¤Ã¤Æ¤¯¤À¤µ¤¤¡£
ÌäÂ꤬ȯÀ¸¤·¤Æ¤¤¤ë¤È¹Í¤¨¤é¤ì¤ë°ÌÃÖ¡¤¤¿¤È¤¨¤ÐÉÔÀµ¤ÊÃͤޤ¿¤Ï½ÐÎϤΥǡ¼¥¿¤òÀ¸À®¤¹¤ë²Õ½ê¤Î¥³¡¼¥É¤Ë¥Ö¥ì¡¼¥¯¥Ý¥¤¥ó¥È¤òÀßÄꤹ¤ë¡£
¥×¥í¥°¥é¥à¤ò¼Â¹Ô¤¹¤ë¡£
where
¥³¥Þ¥ó¥É¤ò»ÈÍѤ·¤Æ¡¤¥¹¥¿¥Ã¥¯¡¦¥È¥ì¡¼¥¹¤ò¹Ô¤¦¡£
print
¥³¥Þ¥ó¥É¤ò»ÈÍѤ·¤Æ¡¤ÌäÂ꤬¤¢¤ë¤È¹Í¤¨¤é¤ì¤ëÊÑ¿ô¤ÎÃͤòɽ¼¨¤¹¤ë¡£
ÌäÂ꤬ȯ¸«¤µ¤ì¤ë¤Þ¤Ç¡¤¼ê½ç 1 °Ê¹ß¤ò·«¤êÊÖ¤¹¡£
5.1.5 ¼Â¹Ô¥×¥í¥»¥¹¤Î¥³¥¢¡¦¥¹¥Ê¥Ã¥×¥·¥ç¥Ã¥È¤ÎºîÀ®
°Û¾ï½ªÎ»¤äÉÔÀµ¤Ê·ë²Ì¤ò½ÐÎϤ·¤Ê¤¤¥×¥í¥°¥é¥à¤Ç¤â¡¤Àµ¾ï¤Ëưºî¤·¤Æ¤¤¤Ê¤¤¾ì¹ç¤¬¤¢¤ê¤Þ¤¹¡£ ¤¿¤È¤¨¤Ð¼¡¤Î¤è¤¦¤Ê¾ì¹ç¤Ç¤¹¡£
¥×¥í¥°¥é¥à¤Î¼Â¹Ô®ÅÙ¤¬¤Ò¤¸¤ç¤¦¤ËÃÙ¤¤¡£
¥µ¡¼¥Ð¤Î±þÅú¤¬Ää»ß¤·¤¿¡£
¤Þ¤¿¡¤¥×¥í¥°¥é¥à¤¬Ìµ¸Â¥ë¡¼¥×¤ËÆþ¤ë¤³¤È¤â¤¢¤ê¤Þ¤¹¡£
¤³¤Î¤è¤¦¤Ê¾ì¹ç¡¤¥×¥í¥°¥é¥à¤Î¼Â¹Ô¤òÄä»ß¤»¤º¤Ë¾õÂÖ¤òÄ´¤Ù¤ë¤³¤È¤¬¤Ç¤¤Þ¤¹¡£
coredump
¥³¥Þ¥ó¥É¤ò»ÈÍѤ¹¤ë¤È¡¤¼Â¹ÔÃæ¤Î¥×¥í¥»¥¹¤Î¥³¥¢¡¦¥¹¥Ê¥Ã¥×¥·¥ç¥Ã¥È¤òºîÀ®¤Ç¤¤Þ¤¹¡£
¾Êά»þ¡¤¥³¥¢¡¦¥¹¥Ê¥Ã¥×¥·¥ç¥Ã¥È¡¦¥Õ¥¡¥¤¥ë¤Ï¸½¹Ô¥Ç¥£¥ì¥¯¥È¥ê¤ËºîÀ®¤µ¤ì¡¤Ì¾Á°¤Ï
corefile
¤Ë¤Ê¤ê¤Þ¤¹¡£
dbx
¤ò»ÈÍѤ¹¤ë¤È¡¤5.2.3 ¹à
¤Ç¤ÎÀâÌÀ¤É¤ª¤ê¤Ë¥³¥¢¡¦¥¹¥Ê¥Ã¥×¥·¥ç¥Ã¥È¤òÄ´¤Ù¤ë¤³¤È¤¬¤Ç¤¤Þ¤¹¡£
¾ÜºÙ¤Ï
coredump
(1)5.1.6 ¾ã³²¤Î²óÈò
¥Ç¥Ð¥Ã¥¬¤Ç¤¹¤Ù¤Æ¤ÎÌäÂ꤬²ò·è¤µ¤ì¤ë¤È¤Ï¸Â¤ê¤Þ¤»¤ó¡£ ¤¿¤È¤¨¤Ð¡¤¥×¥í¥°¥é¥à¤ËÏÀÍý¥¨¥é¡¼¤¬¤¢¤ë¾ì¹ç¤Ë¤Ï¡¤¥Ç¥Ð¥Ã¥¬¤ÏÌäÂê¤Îȯ¸«¤Ë¤ÏÍøÍѤǤ¤Þ¤¹¤¬¡¤²ò·è¤Ï¤Ç¤¤Þ¤»¤ó¡£ ¥Ç¥Ð¥Ã¥¬¤Ë¤è¤êɽ¼¨¤µ¤ì¤ë¾ðÊ󤬺®Í𤷤Ƥ¤¤¿¤ê´Ö°ã¤Ã¤Æ¤¤¤ë¤è¤¦¤Ê¾ì¹ç¤Ë¤Ï¡¤¼¡¤Î¤è¤¦¤Ê½èÍý¤Ç¤½¤Î¾õ¶·¤òÄûÀµ¤¹¤ë¤³¤È¤¬¤Ç¤¤Þ¤¹¡£
¥½¡¼¥¹¡¦¥³¡¼¥É¹Ô¤òʬΥ²Äǽ¤Ê²Õ½ê¡¤¤¿¤È¤¨¤Ð¡¤if
¾ò·ï¤Î¸å¤Ê¤É¤ÇÏÀÍýñ°Ì¤ËʬΥ¤¹¤ë¡£
¥Ç¥Ð¥Ã¥¬¤Ï¡¤Æ±¤¸¹Ô¤ËÊ£¿ô¤Î¥½¡¼¥¹Ê¸¤¬µ½Ò¤µ¤ì¤Æ¤¤¤ë¤Èǧ¼±¤¹¤ë¤³¤È¤¬¤Ç¤¤Þ¤»¤ó¡£
¼Â¹Ô²Äǽ¥Õ¥¡¥¤¥ë¡¦¥³¡¼¥É¤¬·çÍ¤Æ¤¤¤ë¤è¤¦¤Ë»×¤ï¤ì¤Æ¤â¡¤¥¤¥ó¥¯¥ë¡¼¥É¡¦¥Õ¥¡¥¤¥ë¤Ë´Þ¤Þ¤ì¤Æ¤¤¤ë²ÄǽÀ¤¬¤¢¤ë¡£
¥Ç¥Ð¥Ã¥¬¤Ï¡¤¥¤¥ó¥¯¥ë¡¼¥É¡¦¥Õ¥¡¥¤¥ë¤ò¥Õ¥¡¥¤¥ë¤Ç¤Ê¤¯Ã±°ì¤Î¹Ô¤Ç¤¢¤ë¤È¸«¤Ê¤·¤Þ¤¹¡£ ¤³¤Î¥³¡¼¥É¤ò¥Ç¥Ð¥Ã¥°¤¹¤ë¾ì¹ç¤Ë¤Ï¡¤¥¤¥ó¥¯¥ë¡¼¥É¡¦¥Õ¥¡¥¤¥ë¤«¤éºï½ü¤·¤Æ¥×¥í¥°¥é¥à¤Î°ìÉô¤È¤·¤Æ¥³¥ó¥Ñ¥¤¥ë¤·¤Þ¤¹¡£
¥½¡¼¥¹¡¦¥³¡¼¥É¤òÊѹ¹¤·¤¿¸å¤Ï¡¤É¬¤ººÆ¥³¥ó¥Ñ¥¤¥ë¤¹¤ë¡£
ºÆ¥³¥ó¥Ñ¥¤¥ë¤·¤Æ¤¤¤Ê¤±¤ì¤Ð¡¤¥Ç¥Ð¥Ã¥¬¤Ëɽ¼¨¤·¤¿¥½¡¼¥¹¡¦¥³¡¼¥É¤¬¼Â¹Ô²Äǽ¥Õ¥¡¥¤¥ë¡¦¥³¡¼¥É¤È°ìÃפ·¤Þ¤»¤ó¡£ ¥½¡¼¥¹¡¦¥Õ¥¡¥¤¥ë¤¬¼Â¹Ô²Äǽ¥Õ¥¡¥¤¥ë¤è¤ê¿·¤·¤¤¾ì¹ç¡¤¥Ç¥Ð¥Ã¥¬¤Ï·Ù¹ð¥á¥Ã¥»¡¼¥¸¤òɽ¼¨¤·¤Þ¤¹¡£
Ctrl/Z ¤ò²¡¤·¤Æ¥Ç¥Ð¥Ã¥¬¤ò½ªÎ»¤·¤¿¸å¤Ë¡¤Æ±¤¸¥Ç¥Ð¥Ã¥°¡¦¥»¥Ã¥·¥ç¥ó¤òºÆ³«¤¹¤ë¾ì¹ç¤Ë¤Ï¡¤¥Ç¥Ð¥Ã¥¬¤Ï¥»¥Ã¥·¥ç¥ó¤Î³«»Ï»þ¤Ë»ØÄꤷ¤¿¤â¤Î¤ÈƱ¤¸¥ª¥Ö¥¸¥§¥¯¥È¡¦¥â¥¸¥å¡¼¥ë¤ËÂФ¹¤ë½èÍý¤ò³¹Ô¤¹¤ë¡£
¤³¤ì¤Ï¡¤¥Ç¥Ð¥Ã¥¬¤òÄä»ß¤·¤Æ¥³¡¼¥ÉÆâ¤ÎÌäÂê¤ò½¤Àµ¤·¡¤ºÆ¥³¥ó¥Ñ¥¤¥ë¤·¤¿¸å¡¤¥Ç¥Ð¥Ã¥°¡¦¥»¥Ã¥·¥ç¥ó¤òºÆ³«¤·¤¿¾ì¹ç¤Ë¡¤¥Ç¥Ð¥Ã¥¬¤¬ÆÉ¤ß¹þ¤à¥ª¥Ö¥¸¥§¥¯¥È¡¦¥â¥¸¥å¡¼¥ë¤Ë¤Ï¡¤Êѹ¹¤¬È¿±Ç¤µ¤ì¤Æ¤¤¤Ê¤¤¤³¤È¤ò°ÕÌ£¤·¤Þ¤¹¡£ ¿·¤·¤¤¥»¥Ã¥·¥ç¥ó¤ò³«»Ï¤¹¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£
ƱÍͤˡ¤¤¢¤ë¥¦¥£¥ó¥É¥¦¤Ç¥×¥í¥°¥é¥à¤Î¥Ç¥Ð¥Ã¥°¤ò¼Â¹Ô¤·¤Æ¤¤¤ë¾ì¹ç¤Ë¡¤Â¾¤Î¥¦¥£¥ó¥É¥¦¤Ç¤½¤Î¥×¥í¥°¥é¥à¤òÊÔ½¸¤·¤ÆºÆ¥³¥ó¥Ñ¥¤¥ë¤·¤Æ¤â¡¤dbx
¤Ï¤³¤ÎÊѹ¹¤òǧ¼±¤·¤Þ¤»¤ó¡£
¥×¥í¥°¥é¥à¤ÎÊѹ¹¤ò
dbx
¤Ëǧ¼±¤µ¤»¤ë¤Ë¤Ï¡¤Êѹ¹¤Î¤¿¤Ó¤Ë
dbx
¤ò½ªÎ»¤·¤Æ¤«¤éºÆµ¯Æ°¤·¤Æ¤¯¤À¤µ¤¤¡£
dbx
¥¡¼¥ï¡¼¥É¤ÈƱ¤¸Ì¾Á°¤¬´Þ¤Þ¤ì¤ë¼°¤òɽ¼¨¤¹¤ë¤¿¤á¤Ë¥³¥Þ¥ó¥É¤òÆþÎϤ¹¤ë¾ì¹ç¤Ë¤Ï¡¤¤½¤Î¼°¤ò¥«¥Ã¥³¤Ç°Ï¤Þ¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£
¤¿¤È¤¨¤Ð¡¤playback
¤ª¤è¤Ó
record
¥³¥Þ¥ó¥É¤Î¥¡¼¥ï¡¼¥É¤Ç¤¢¤ë
output
¤ÎÃͤòɽ¼¨¤¹¤ë¤Ë¤Ï¡¤¼¡¤Î¤è¤¦¤Ë»ØÄꤷ¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó¡£
¾ÜºÙ¤Ë¤Ä¤¤¤Æ¤Ï5.9.4 ¹à¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£
(dbx) print (output)
¥Ç¥Ð¥Ã¥¬¤¬ÊÑ¿ô¤Þ¤¿¤Ï¼Â¹Ô²Äǽ¥Õ¥¡¥¤¥ë¡¦¥³¡¼¥É¤Î¤¤¤º¤ì¤âɽ¼¨¤·¤Ê¤¤¾ì¹ç¤Ë¤Ï¡¤¥×¥í¥°¥é¥à¤ò¥³¥ó¥Ñ¥¤¥ë¤·¤¿¤È¤¤Ë
-g
¥ª¥×¥·¥ç¥ó¤ò»ÈÍѤ·¤¿¤«¤É¤¦¤«¤ò³Îǧ¤¹¤ë¡£
dbx
¤ò¸Æ¤Ó½Ð¤¹Á°¤Ë¡¤¥Ç¥Ð¥Ã¥°ÍÑ¤Ë¥×¥í¥°¥é¥à¤ò¥³¥ó¥Ñ¥¤¥ë¤¹¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£
¥Ç¥Ð¥Ã¥¬µ¯Æ°»þ¤Ë³Æ
dbx
¥³¥Þ¥ó¥É¤ò¼Â¹Ô¤¹¤ë
dbx
½é´ü²½¥Õ¥¡¥¤¥ë¤òºîÀ®¤¹¤ë¤³¤È¤â¤Ç¤¤Þ¤¹¡£
5.2.1 ¥Ç¥Ð¥Ã¥°ÍÑ¥×¥í¥°¥é¥à¤Î¥³¥ó¥Ñ¥¤¥ë
¥Ç¥Ð¥Ã¥¬ÍÑ¤Ë¥×¥í¥°¥é¥à¤Î½àÈ÷¤ò¤¹¤ë¤Ë¤Ï¡¤¥³¥ó¥Ñ¥¤¥ë»þ¤Ë
-g
¥ª¥×¥·¥ç¥ó¤ò»ØÄꤷ¤Þ¤¹¡£
¤³¤Î¥ª¥×¥·¥ç¥ó¤Ë¤è¤ê¡¤¥·¥ó¥Ü¥ë¡¦¥Æ¡¼¥Ö¥ë¾ðÊó¤¬
dbx
¥×¥í¥°¥é¥à¤ËÆÉ¤ß¹þ¤Þ¤ì¡¤ºÇŬ²½¥ì¥Ù¥ë¤ò
-O0
¤ËÀßÄꤷ¤Þ¤¹¡£
dbx
¥Ç¥Ð¥Ã¥¬¤Ï¡¤¤³¤Î¾ðÊó¤ò»ÈÍѤ·¤Æ¥½¡¼¥¹¹Ô¤ò¥ê¥¹¥È¤·¤Þ¤¹¡£
Ê̤κÇŬ²½¥ì¥Ù¥ë (-O2
¤Ê¤É) ¤ò»ÈÍѤ¹¤ë¤È¡¤ºÇŬ²½¥×¥í¥°¥é¥à¤Ï¡¤¥×¥í¥°¥é¥àÆâ¤ÎÀ©¸æ¥Õ¥í¡¼¤òÊѹ¹¤Ï¤·¤Þ¤»¤ó¤¬¡¤±é»»Ì¿Îá¤ò°Üư¤·¡¤¥ª¥Ö¥¸¥§¥¯¥È¡¦¥³¡¼¥É¤È¥½¡¼¥¹¡¦¥³¡¼¥É¤¬°ìÃפ·¤Ê¤¯¤Ê¤ë¤³¤È¤¬¤¢¤ê¤Þ¤¹¡£
¤³¤ì¤é¤ÎÊѹ¹¤µ¤ì¤¿¥³¡¼¥É¡¦¥·¡¼¥±¥ó¥¹¤Ï¡¤¥Ç¥Ð¥Ã¥¬¤ò»ÈÍѤ¹¤ë¾ì¹ç¤Ëº®Íð¤ò¾·¤¯²ÄǽÀ¤¬¤¢¤ê¤Þ¤¹¡£
-g
¥ª¥×¥·¥ç¥ó¤òÉÕ¤±¤º¤Ë¥³¥ó¥Ñ¥¤¥ë¤·¤¿¥³¡¼¥É¤Ç¡¤¸ÂÄꤵ¤ì¤¿¥Ç¥Ð¥Ã¥°¤ò¼Â¹Ô¤¹¤ë¤³¤È¤¬¤Ç¤¤Þ¤¹¡£
¤¿¤È¤¨¤Ð¡¤¼¡¤Î¥³¥Þ¥ó¥É¤Ï¡¤¥Ç¥Ð¥Ã¥°ÍѤ˺ƥ³¥ó¥Ñ¥¤¥ë¤·¤Ê¤¯¤Æ¤â¡¤Àµ¾ï¤Ëưºî¤·¤Þ¤¹¡£
stop in PROCEDURE
stepi
cont
conti
(ADDRESS)/<COUNT>
<MODE>
tracei
¤³¤Î¥³¡¼¥É¤Ç¸ÂÄꤵ¤ì¤¿¥Ç¥Ð¥Ã¥°¤ò¼Â¹Ô¤¹¤ë¤³¤È¤Ï¤Ç¤¤Þ¤¹¤¬¡¤-g
¤ò»ÈÍѤ·¤Æ¥×¥í¥°¥é¥à¤òºÆ¥³¥ó¥Ñ¥¤¥ë¤¹¤ëÊý¤¬Í¸ú¤Ç¤¹¡£
-g
¥ª¥×¥·¥ç¥ó¤òÉÕ¤±¤Ê¤¤¤Ç¥ª¥Ö¥¸¥§¥¯¥È¡¦¥Õ¥¡¥¤¥ë¤ò¥³¥ó¥Ñ¥¤¥ë¤·¤Æ¤â¡¤¥Ç¥Ð¥Ã¥¬¤Ï·Ù¹ð¤ò½Ð¤µ¤Ê¤¤¤³¤È¤ËÃí°Õ¤·¤Æ¤¯¤À¤µ¤¤¡£
´°Á´¤Ê¥·¥ó¥Ü¥ë¡¦¥Æ¡¼¥Ö¥ë¾ðÊó¤¬ÍøÍѤǤ¤ë¤Î¤Ï¡¤¤¹¤Ù¤Æ¤Î¥â¥¸¥å¡¼¥ë¤¬
-g
¥ª¥×¥·¥ç¥ó¤òÉÕ¤±¤Æ¥³¥ó¥Ñ¥¤¥ë¤µ¤ì¤Æ¤¤¤ë¥×¥í¥°¥é¥à¤À¤±¤Ç¤¹¡£
¤½¤¦¤Ç¤Ê¤¤¥×¥í¥°¥é¥à¤Î¾ì¹ç¤Ï¡¤-g
¥ª¥×¥·¥ç¥ó¤òÉÕ¤±¤Æ¥³¥ó¥Ñ¥¤¥ë¤µ¤ì¤¿¥â¥¸¥å¡¼¥ë¤Ç»²¾È¤µ¤ì¤Æ¤¤¤ë¤«¡¤¤Þ¤¿¤ÏÄêµÁ¤µ¤ì¤Æ¤¤¤ë¥·¥ó¥Ü¥ë¤Ë´Ø¤¹¤ë¥·¥ó¥Ü¥ë¡¦¥Æ¡¼¥Ö¥ë¾ðÊó¤·¤«ÍøÍѤǤ¤Þ¤»¤ó¡£
Ãí°Õ
¥Ö¥ì¡¼¥¯¥Ý¥¤¥ó¥È¤òÀßÄꤹ¤ë¥·¥§¥¢¡¼¥É¡¦¥é¥¤¥Ö¥é¥ê¡¦¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Î¥ë¡¼¥Á¥ó¤Ï¤¹¤Ù¤Æ¡¤
-g
¥ª¥×¥·¥ç¥ó¤ò»ÈÍѤ·¤Æ¥³¥ó¥Ñ¥¤¥ë¤¹¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£-g
¥ª¥×¥·¥ç¥ó¤ò»ØÄꤷ¤Ê¤¤¾ì¹ç¤Ë¤Ï¡¤dbx
¤Ë¥Ö¥ì¡¼¥¯¥Ý¥¤¥ó¥È¤òÀßÄꤹ¤ë¤Î¤ËɬÍפʥ·¥ó¥Ü¥ë¡¦¥Æ¡¼¥Ö¥ë¤Î¾ðÊó¤¬À¸À®¤µ¤ì¤Ê¤¤¤¿¤á¡¤dbx
¤Ï¡¤¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤òÄä»ß¤¹¤ë¤³¤È¤¬¤Ç¤¤Þ¤»¤ó¡£
5.2.2 dbx ½é´ü²½¥Õ¥¡¥¤¥ë¤ÎºîÀ®
³Æ
dbx
¥»¥Ã¥·¥ç¥ó¤Î½é¤á¤Ë¡¤Ä̾ïÆþÎϤ¹¤ë¥³¥Þ¥ó¥É¤ò´Þ¤à
dbx
½é´ü²½¥Õ¥¡¥¤¥ë¤òºîÀ®¤¹¤ë¤³¤È¤¬¤Ç¤¤Þ¤¹¡£
¤¿¤È¤¨¤Ð¡¤¤½¤Î¥Õ¥¡¥¤¥ë¤Ë¤Ï¡¤¼¡¤Î¤è¤¦¤Ë¥³¥Þ¥ó¥É¤ò»ØÄꤹ¤ë¤³¤È¤¬¤Ç¤¤Þ¤¹¡£
set $page = 5 set $lines = 20 set $prompt = "DBX> " alias du dump
½é´ü²½¥Õ¥¡¥¤¥ë¤Ë¤Ï¡¤.dbxinit
¤È¤¤¤¦Ì¾Á°¤òÉÕ¤±¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó¡£
¥Ç¥Ð¥Ã¥¬¤ò¼Â¹Ô¤¹¤ë¤¿¤Ó¤Ë¡¤dbx
¤Ï¡¤.dbxinit
¤Ë¤¢¤ë¥³¥Þ¥ó¥É·²¤ò¼Â¹Ô¤·¤Þ¤¹¡£
dbx
¥Ç¥Ð¥Ã¥¬¤Ï¡¤½é¤á¤Ë¸½ºß¤Î¥Ç¥£¥ì¥¯¥È¥ê¤Ç¡¤¼¡¤Ë
$HOME
´Ä¶ÊÑ¿ô¤Ë³ä¤êÅö¤Æ¤é¤ì¤¿¥Ç¥£¥ì¥¯¥È¥ê¤Ç¤¢¤ë¥Û¡¼¥à¡¦¥Ç¥£¥ì¥¯¥È¥ê¤Ç¡¤.dbxinit
¤òõ¤·¤Þ¤¹¡£
5.2.3 dbx ¤Îµ¯Æ°¤È½ªÎ»
dbx
¥³¥Þ¥ó¥É¤ª¤è¤ÓɬÍפʥѥé¥á¡¼¥¿¤òÆþÎϤ·¤Æ¡¤¥·¥§¥ë¡¦¥³¥Þ¥ó¥É¹Ô¤«¤é
dbx
¤ò¼Â¹Ô¤·¤Æ¤¯¤À¤µ¤¤¡£
¼Â¹Ô¸å¤Ë¡¤dbx
¤Ï¡¤¸½ºß¤Î´Ø¿ô¤ò¥×¥í¥°¥é¥à¤ÎºÇ½é¤Î¥×¥í¥·¡¼¥¸¥ã¤ËÀßÄꤷ¤Þ¤¹¡£
dbx
¥³¥Þ¥ó¥É¤Î¹½Ê¸¤Ï¡¤¼¡¤Î¤È¤ª¤ê¤Ç¤¹¡£
dbx
[ options ] [ objectfile [ corefile ] ]
dbx
¥³¥Þ¥ó¥É¹Ô¤¬¥µ¥Ý¡¼¥È¤¹¤ë¥ª¥×¥·¥ç¥ó¤Ë¤Ä¤¤¤Æ¤Ï¡¤É½ 5-2
¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£
¥Ç¥Ð¥Ã¥°ÂÐ¾Ý¤Î¥×¥í¥°¥é¥à¤Î¼Â¹Ô²Äǽ¥Õ¥¡¥¤¥ë̾¤ò»ØÄꤷ¤Þ¤¹¡£
objectfile
¤¬»ØÄꤵ¤ì¤Ê¤¤¾ì¹ç¡¤dbx
¤Ï¡¤¾Êά»þ¤ÎÀßÄê
a.out
¤ò»ÈÍѤ·¤Þ¤¹¡£
¥×¥í¥°¥é¥à¤Î¼Â¹Ô¤¬°Û¾ï½ªÎ»¤·¤¿¾ì¹ç¤ä¡¤
coredump
(1)dbx
¤Ï¥×¥í¥°¥é¥à¤Î°Û¾ï½ªÎ»¤Þ¤¿¤Ï¥¹¥Ê¥Ã¥×¥·¥ç¥Ã¥È¤ÎµÏ¿¤µ¤ì¤¿°ÌÃÖ¤òÆÃÄꤷ¤Þ¤¹¡£
dbx
¥³¥Þ¥ó¥É¤ò»ÈÍѤ¹¤ë¤È¡¤¤½¤Î»þÅÀ¤Ç¤Î¥×¥í¥°¥é¥à¤Î¾õÂÖ¤¬È½ÃǤǤ¤Þ¤¹¡£
¥³¥¢¡¦¥À¥ó¥×¡¦¥Õ¥¡¥¤¥ë¤Ï¤¹¤Ù¤Æ¡¤¾Êά»þ¤Ë¤Ï
core
¤È¤¤¤¦Ì¾Á°¤Ç¤¹¡£
¥·¥¹¥Æ¥à¤Þ¤¿¤Ï¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Î¥ì¥Ù¥ë¤Ç¥³¥¢¡¦¥Õ¥¡¥¤¥ë¤Î̿̾¤ò͸ú¤Ë¤¹¤ëÊýË¡¤Ë¤Ä¤¤¤Æ¤Ï¡¤5.10 Àá
¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£
dbx
¤Ç»ØÄê²Äǽ¤Ê°ú¿ô¤ÎºÇÂç¿ô¤Ï 1000 ¤Ç¤¹¡£
¤¿¤À¤·¡¤»ÈÍѤ·¤Æ¤¤¤ë¥Þ¥·¥ó¤Î¥·¥¹¥Æ¥àÀ©¸Â¤Ë¤è¤ê¡¤¤³¤Î¿ô¤Ïºï¸º¤µ¤ì¤Æ¤¤¤ë¤³¤È¤¬¤¢¤ê¤Þ¤¹¡£
ɽ 5-2: dbx ¥³¥Þ¥ó¥É¡¦¥ª¥×¥·¥ç¥ó
¥ª¥×¥·¥ç¥ó | µ¡Ç½ |
-cfilename |
.dbxinit
¥Õ¥¡¥¤¥ë°Ê³°¤Î½é´ü²½¥³¥Þ¥ó¥É¡¦¥Õ¥¡¥¤¥ë¤òÁªÂò¤¹¤ë¡£ |
-Idirname |
»ØÄꤷ¤¿¥Ç¥£¥ì¥¯¥È¥ê¤Ç¥½¡¼¥¹¡¦¥Õ¥¡¥¤¥ë¤òõ¤¹¤è¤¦¤Ë
dbx
¤Ë»Ø¼¨¤¹¤ë¡£
Ê£¿ô¤Î¥Ç¥£¥ì¥¯¥È¥ê¤ò»ØÄꤹ¤ë¤Ë¤Ï¡¤¤½¤ì¤¾¤ì¤Î¥Ç¥£¥ì¥¯¥È¥ê¤Ë
-I
¤ò»ÈÍѤ·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£
dbx
¤Î¼Â¹Ô»þ¤Ë
-I
¤ò»ØÄꤷ¤Ê¤¤¤È¡¤¥Ç¥Ð¥Ã¥¬¤Ï¡¤¸½ºß¤Î¥Ç¥£¥ì¥¯¥È¥ê¤ª¤è¤Ó¥ª¥Ö¥¸¥§¥¯¥È¡¦¥Õ¥¡¥¤¥ë¤Î¥Ç¥£¥ì¥¯¥È¥ê¤Ç¥½¡¼¥¹¡¦¥Õ¥¡¥¤¥ë¤òõ¤¹¡£
use
¥³¥Þ¥ó¥É¤ò»ÈÍѤ·¤Æ¡¤¥Ç¥£¥ì¥¯¥È¥ê¤òÊѹ¹¤¹¤ë¤³¤È¤¬¤Ç¤¤ë¡£
5.6.1 ¹à¤ò»²¾È¡£ |
-i |
ÂÐÏ÷¿¥â¡¼¥É¤Ç
dbx
¤ò¼Â¹Ô¤¹¤ë¡£
¤³¤Î¥ª¥×¥·¥ç¥ó¤òÉÕ¤±¤ë¤È¡¤¥Ç¥Ð¥Ã¥¬¤¬Èֹ浹æ ( # ) ¤Ç»Ï¤Þ¤ë¥½¡¼¥¹¹Ô¤ò¥³¥á¥ó¥È¤È¤·¤Æ°·¤ï¤Ê¤¤¤è¤¦¤Ë¤Ê¤ë¡£ |
-k |
¥á¥â¥ê¡¦¥¢¥É¥ì¥¹¤ò¥Þ¥Ã¥×¤¹¤ë¡£ ¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï¡¤¥«¡¼¥Í¥ë¤Î¥Ç¥Ð¥Ã¥°¤Ë͸ú¤Ç¤¢¤ë¡£ ¥«¡¼¥Í¥ë¤Î¥Ç¥Ð¥Ã¥°¤Ë¤Ä¤¤¤Æ¤Î¾ÜºÙ¤Ï¡¤¡ØKernel Debugging¡Ù¤ò»²¾È¡£ |
-module_path |
dbx
¤¬¥·¥§¥¢¡¼¥É¡¦¥é¥¤¥Ö¥é¥ê (¤Þ¤¿¤Ï¥í¡¼¥É²Äǽ¥«¡¼¥Í¥ë¡¦¥â¥¸¥å¡¼¥ë) ¤ò¸¡º÷¤¹¤ë¥Ç¥£¥ì¥¯¥È¥ê¡¦¥Ñ¥¹¤ò»ØÄꤹ¤ë¡£
¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï¡¤¤¿¤È¤¨¤Ð¡¤¥³¥¢¡¦¥À¥ó¥× (¤Þ¤¿¤Ï¥«¡¼¥Í¥ë¡¦¥¯¥é¥Ã¥·¥å¡¦¥À¥ó¥×) ¤ò¥Ç¥Ð¥Ã¥°¤·¤Æ¤¤¤Æ¡¤¤½¤Î¥À¥ó¥×¤¬È¯À¸¤·¤¿¤È¤¤Ë¼Â¹Ô¤·¤Æ¤¤¤¿¥·¥§¥¢¡¼¥É¡¦¥é¥¤¥Ö¥é¥ê (¤Þ¤¿¤Ï¥â¥¸¥å¡¼¥ë) ¤Î¥Ð¡¼¥¸¥ç¥ó¤¬Ê̤ξì½ê¤Ë°Üư¤·¤Æ¤¤¤ë¾ì¹ç¤Ê¤É¤ËÍÍѤǤ¢¤ë¡£
¥«¡¼¥Í¥ë¤Î¥Ç¥Ð¥Ã¥°¤Ë¤Ä¤¤¤Æ¤Î¾ÜºÙ¤Ï¡¤¡ØKernel Debugging¡Ù¤ò»²¾È¡£ |
-module_verbose |
¥·¥§¥¢¡¼¥É¡¦¥é¥¤¥Ö¥é¥ê¤Î¥í¡¼¥É»þ¤Ë
dbx
¤¬¤½¤Î¥Ñ¥¹ (¤Þ¤¿¤Ï¡¤¥«¡¼¥Í¥ë¤ò¥Ç¥Ð¥Ã¥°¤·¤Æ¤¤¤ë¾ì¹ç¤Ï¡¤¥í¡¼¥É²Äǽ¥â¥¸¥å¡¼¥ë) ¤ò¥×¥ê¥ó¥È¤¹¤ë¤è¤¦¤Ë¤¹¤ë¡£
¾Êά»þ¤ÎÀßÄê¤Ç¤Ï¡¤dbx
¤Ï¥Ñ¥¹¤ò¥×¥ê¥ó¥È¤·¤Ê¤¤¡£
¥«¡¼¥Í¥ë¤Î¥Ç¥Ð¥Ã¥°¤Ë¤Ä¤¤¤Î¾ÜºÙ¤Ï¡¤¡ØKernel Debugging¡Ù¤ò»²¾È¡£ |
-pid
process-id |
dbx
¤ò¸½ºß¼Â¹ÔÃæ¤Î¥×¥í¥»¥¹¤Ë¥¢¥¿¥Ã¥Á¤¹¤ë¡£ |
-r |
¥³¥Þ¥ó¥É¹Ô¤Ç»ØÄꤹ¤ë¥ª¥Ö¥¸¥§¥¯¥È¡¦¥Õ¥¡¥¤¥ë¤ò¤¿¤À¤Á¤Ë¼Â¹Ô¤¹¤ë¡£
¥×¥í¥°¥é¥à¤Î¼Â¹Ô¤¬¥¨¥é¡¼¤Ç½ªÎ»¤·¤¿¾ì¹ç¤Ë¤Ï¡¤dbx
¤Ï¡¤¤½¤Î¥¨¥é¡¼¤òÀâÌÀ¤¹¤ë¥á¥Ã¥»¡¼¥¸¤òɽ¼¨¤¹¤ë¡£
¼¡¤Ë¡¤¥Ç¥Ð¥Ã¥¬¤ò¼Â¹Ô¤¹¤ë¤«¡¤¤Þ¤¿¤Ï¤½¤Î¥×¥í¥°¥é¥à¤Ë´Ø¤¹¤ë½èÍý¤ò½ªÎ»¤µ¤»¤ë¤³¤È¤¬¤Ç¤¤ë¡£
-r
¥ª¥×¥·¥ç¥ó¤ò»ØÄꤷ¡¤É¸½àÆþÎϤ¬Ã¼Ëö¤Ç¤Ê¤¤¾ì¹ç¡¤dbx
¥Ç¥Ð¥Ã¥¬¤Ï¡¤/dev/tty
¤«¤éÆÉ¤ß¼è¤ê¤ò¹Ô¤¦¡£
¥×¥í¥°¥é¥à¤¬Àµ¾ï½ªÎ»¤·¤¿¾ì¹ç¤Ë¤Ï¡¤dbx
¤ÏÆþÎϤòµá¤á¤ë¡£ |
¼¡¤ÎÎã¤Ç¤Ï¡¤¥ª¥×¥·¥ç¥ó¤òÉÕ¤±¤º¤Ë
dbx
¤ò¼Â¹Ô¤·¤Þ¤¹¡£
¥ª¥Ö¥¸¥§¥¯¥È¡¦¥Õ¥¡¥¤¥ë̾¤¬»ØÄꤵ¤ì¤Æ¤¤¤Ê¤¤¤¿¤á¡¤dbx
¤Ï¡¤¥Õ¥¡¥¤¥ë̾¤ÎÆþÎϤòµá¤á¤Þ¤¹¡£
¤³¤Î¾ì¹ç¤Ï¡¤sam
¤ò»ÈÍѤ·¤Æ±þÅú¤·¤Þ¤¹¡£
¾Êά»þ¤Î¥Ç¥Ð¥Ã¥¬¤Î¥×¥í¥ó¥×¥È¤Ï¡¤(dbx)
¤Ç¤¹¡£
% dbx enter object file name (default is 'a.out'): sam dbx version 3.12 Type 'help' for help. main: 23 if (argc < 2) { (dbx)
¥Ç¥Ð¥Ã¥°¥»¥Ã¥·¥ç¥ó¤ò½ªÎ»¤¹¤ë¾ì¹ç¤Ï¡¤quit
¥³¥Þ¥ó¥É¤ò»ÈÍѤ·¤Þ¤¹ (´Êά·Á¤Î
q
¥³¥Þ¥ó¥É¤â»ÈÍѤǤ¤Þ¤¹)¡£
quit
¥³¥Þ¥ó¥É¤Ë¤Ï°ú¿ô¤ÏÉÔÍפǤ¹¡£
5.3 dbx ¥³¥Þ¥ó¥É¤Î»ÈÍÑÊýË¡
ÆþÎϹԤˤϡ¤10,240 ¤Þ¤Ç¤Îʸ»ú¤òÆþÎϤ¹¤ë¤³¤È¤¬¤Ç¤¤Þ¤¹¡£
¹Ô¤¬Ä¹¤¤¾ì¹ç¤Ï¡¤¥Ð¥Ã¥¯¥¹¥é¥Ã¥·¥å (\) ¤òÆþÎϤ·¤Æ¤«¤é¤½¤Î¸å¤Ë³¤±¤Þ¤¹¡£
¹Ô¤¬Ä¹¤¹¤®¤ë¤È¡¤dbx
¤Ï¡¤¥¨¥é¡¼¡¦¥á¥Ã¥»¡¼¥¸¤òɽ¼¨¤·¤Þ¤¹¡£
ºÇÂç¤Îʸ»úÎó¤ÎŤµ¤â¡¤10,240 ¤Ç¤¹¡£
¼¡¤Î³Æ¹à¤Ç¤Ï¡¤ÊÑ¿ô̾¤Î½¤¾þ¡¤dbx
¤Î¼°¤ÈÍ¥Àè½ç°Ì¡¤¤ª¤è¤Ó
dbx
¤Î¥Ç¡¼¥¿·¿¤ÈÄê¿ô¤Ë¤Ä¤¤¤ÆÀâÌÀ¤·¤Þ¤¹¡£
5.3.1 ÊÑ¿ô̾¤Î½¤¾þ
dbx
¤ÎÊÑ¿ô¤Ï¡¤¥Õ¥¡¥¤¥ë¡¤¥×¥í¥·¡¼¥¸¥ã¡¤¥Ö¥í¥Ã¥¯¡¤¤Þ¤¿¤Ï¹½Â¤ÂΤǽ¤¾þ¤·¤Þ¤¹¡£
print
¤Ê¤É¤Î¥³¥Þ¥ó¥É¤ò»ÈÍѤ·¤ÆÊÑ¿ô¤ÎÃͤòɽ¼¨¤¹¤ë¾ì¹ç¡¤dbx
¤Ï¡¤¤¿¤È¤¨¤Ð¡¤2 ¤Ä°Ê¾å¤Î¥×¥í¥·¡¼¥¸¥ã¤ËƱ¤¸Ì¾Á°¤ÎÊÑ¿ô¤¬¤¢¤ë¾ì¹ç¤Ê¤É¡¤ÊÑ¿ô¤Î͸úÈϰϤ¬Û£Ëæ¤Ç¤¢¤ë²ÄǽÀ¤¬¤¢¤ë¤È¡¤¤½¤Î͸úÈϰϤòɽ¼¨¤·¤Þ¤¹¡£
¤½¤Î͸úÈϰϤ¬´Ö°ã¤Ã¤Æ¤¤¤ë¾ì¹ç¤Ï¡¤¼¡¤Î¤è¤¦¤Ë¥Ô¥ê¥ª¥É¤Ç¶èÀڤäơ¤ÊÑ¿ô¤Î͸úÈϰϤΤ¹¤Ù¤Æ¤ò»ØÄꤹ¤ë¤³¤È¤¬¤Ç¤¤Þ¤¹¡£
sam.main.i | | | | | [3] | [2] [1]
¸½ºß¤Î¥Õ¥¡¥¤¥ë [Îã¤ËÌá¤ë]
¥×¥í¥·¡¼¥¸¥ã̾ [Îã¤ËÌá¤ë]
ÊÑ¿ô̾ [Îã¤ËÌá¤ë]
dbx
¥Ç¥Ð¥Ã¥¬¤Ï¡¤C ¸À¸ì¤Î¼°±é»»»Ò¤òǧ¼±¤·¤Þ¤¹¡£
¤Þ¤¿¡¤¤³¤ì¤é¤Î±é»»»Ò¤Ï¡¤Â¾¤Î¥µ¥Ý¡¼¥È¸À¸ì¤Î¥Ç¥Ð¥Ã¥°¤Ë¤â»ÈÍѤµ¤ì¤Þ¤¹¡£
dbx
¤Ç¤Ï¡¤Fortran ¤Î¾ì¹ç¤âÇÛÎó¤Îź»ú¤Ë [ ] ¤ò»ÈÍѤ·¤Þ¤¹¡£
ɸ½à¤Î C ±é»»»Ò¤Ë²Ã¤¨¤Æ¡¤É½ 5-3
¤Ë¼¨¤¹¤è¤¦¤Ë¡¤dbx
¤Ï # µ¹æ¤â±é»»»Ò¤È¤·¤Æ»ÈÍѤ·¤Þ¤¹¡£
ɽ 5-3: dbx ¤Î # ¼°±é»»»Ò
±é»»»Ò | ¹½Ê¸¤ÎÀâÌÀ |
("FILE" #EXP) |
FILE
¤Ë»ØÄꤵ¤ì¤¿¥Õ¥¡¥¤¥ëÆâ¤Î
#EXP
¤Ç»ØÄꤵ¤ì¤ë¹ÔÈÖ¹æ¤ò»ÈÍѤ¹¤ë¡£ |
(PROCEDURE #EXP) |
PROCEDURE
¤Ë»ØÄꤵ¤ì¤¿¥×¥í¥·¡¼¥¸¥ãÆâ¤Î
#EXP
¤Ç»ØÄꤵ¤ì¤ëÁêÂйÔÈÖ¹æ¤ò»ÈÍѤ¹¤ë¡£ |
(#EXP) |
(#EXP) ¤Ç»ØÄꤵ¤ì¤ë¹Ô¤Î¥¢¥É¥ì¥¹¤òÊÖ¤¹¡£ |
³Æ±é»»»Ò¤ÎÍ¥Àè½ç°Ì¤Ï¡¤C ¸À¸ì¤Ë¤ª¤±¤ëÍ¥Àè½ç°Ì¤Ë½¾¤¤¤Þ¤¹¡£
ɽ 5-4
¤Ë¡¤dbx
¤¬Ç§¼±¤¹¤ë¸À¸ì±é»»»Ò¤òÍ¥Àè½ç°Ì¤Î¹â¤¤½ç¤Ë¼¨¤·¤Þ¤¹¡£
ɽ 5-4: C ¤Î¼°±é»»»Ò
ñ¹à | & ,
+ ,
- ,
*
(¥Ý¥¤¥ó¥¿),
# ,
sizeof()
[µÓÃí 2]
, ~,
/ ,
(type) ,
(type *) |
2 ¹à | << ,
>> ,
" ,
! ,
== ,
!= ,
<= ,
>= ,
< ,
> ,
& ,
&& ,
| ,
|| ,
+ ,
- ,
* ,/
[µÓÃí 3]
, %,
[] ,
-> |
5.3.3 dbx ¤Î¥Ç¡¼¥¿·¿¤ª¤è¤ÓÄê¿ô
ɽ 5-5
¤Ë¡¤dbx
¥³¥Þ¥ó¥É¤¬»ÈÍѤǤ¤ëÁȤ߹þ¤ß¥Ç¡¼¥¿·¿¤ò¥ê¥¹¥È¤·¤Þ¤¹¡£
ɽ 5-5: ÁȤ߹þ¤ß¥Ç¡¼¥¿·¿
¥Ç¡¼¥¿·¿ | ÀâÌÀ | ¥Ç¡¼¥¿·¿ | ÀâÌÀ | |
$address |
¥Ý¥¤¥ó¥¿ | $real |
ÇÜÀºÅټ¿ô | |
$boolean |
¥Ö¡¼¥ë | $short |
16 ¥Ó¥Ã¥ÈÀ°¿ô | |
$char |
ʸ»ú | $signed |
É乿ÉÕ¤À°¿ô | |
$double |
ÇÜÀºÅټ¿ô | $uchar |
É乿¤Ê¤·Ê¸»ú | |
$float |
ñÀºÅټ¿ô | $unsigned |
É乿¤Ê¤·À°¿ô | |
$integer |
É乿ÉÕ¤À°¿ô | $void |
¶õ |
·¿¶¯À©¤Î¤¿¤á¤ÎÁȤ߹þ¤ß¥Ç¡¼¥¿·¿¤ò»ÈÍѤ·¤Æ¡¤¤¿¤È¤¨¤Ð¡¤ÊÑ¿ô¤ÎÀë¸À¤Ç»ØÄꤷ¤¿·¿°Ê³°¤Î·¿¤ÇÊÑ¿ô¤ÎÃͤòɽ¼¨¤¹¤ë¤³¤È¤¬¤Ç¤¤Þ¤¹¡£
dbx
¥Ç¥Ð¥Ã¥¬¤Ï C ¸À¸ì¤Î¥Ç¡¼¥¿·¿¤òÍý²ò¤·¤Æ¤¤¤ë¤¿¤á¡¤¥É¥ëµ¹æ ($
) ¤òÉÕ¤±¤Ê¤¯¤Æ¤â¥Ç¡¼¥¿·¿¤ò»²¾È¤Ç¤¤Þ¤¹¡£
dbx
¤Ø¤ÎÆþÎϤȤ·¤Æ¼õ¤±Æþ¤ì²Äǽ¤ÊÄê¿ô¤Î·¿¤òɽ 5-6
¤Ë¼¨¤·¤Þ¤¹¡£
Äê¿ô¤Ï¡¤¾Êά»þ¤ÎÀßÄê¤Ç¤Ï¡¤10 ¿Ê¿ô¤ÎÃͤȤ·¤Æ
dbx
¤Î½ÐÎϤËɽ¼¨¤µ¤ì¤Þ¤¹¡£
ɽ 5-6: ÆþÎϲÄǽ¤ÊÄê¿ô
Äê¿ô | ÀâÌÀ |
false |
0 |
true |
Èó¥¼¥í |
nil |
0 |
0xnumber |
16 ¿Ê¿ô |
0tnumber |
10 ¿Ê¿ô |
0number |
8 ¿Ê¿ô |
number | 10 ¿Ê¿ô |
number.[ number][e|E][+|-]EXP |
ÉâÆ°¾®¿ôÅÀ |
Ãí°Õ
ÉâÆ°¾®¿ôÅÀ°Ê³°¤Î¥ª¡¼¥Ð¥Õ¥í¡¼¤Ç¤Ï¡¤±¦Ã¼¤Î¿ô»ú¤ò»ÈÍѤ·¤Þ¤¹¡£ ÉâÆ°¾®¿ôÅÀ¤Î¥ª¡¼¥Ð¥Õ¥í¡¼¤Ç¤Ï¡¤²¾¿ô¤Îº¸Ã¼¡¤¤Þ¤¿¡¤»Ø¿ô¤Ï¡¤ºÇ¾å°Ì¤Þ¤¿¤ÏºÇ²¼°Ì¤Î¤¤¤º¤ì¤«²Äǽ¤ÊÊý¤¬»ÈÍѤµ¤ì¤Þ¤¹¡£
$octin
ÊÑ¿ô¤Ï¡¤¾Êά»þ¤ÎÆþÎϤò 8 ¿Ê¿ô¤ËÊѹ¹¤·¤Þ¤¹¡£$hexin
ÊÑ¿ô¤Ï¡¤¾Êά»þ¤ÎÆþÎϤò 16 ¿Ê¿ô¤ËÊѹ¹¤·¤Þ¤¹¡£ 5.5.2 ¹à¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£
$octints
ÊÑ¿ô¤Ï¡¤¾Êά»þ¤Î½ÐÎϤò 8 ¿Ê¿ô¤ËÊѹ¹¤·¤Þ¤¹¡£$hexints
ÊÑ¿ô¤Ï¡¤¾Êά»þ¤Î½ÐÎϤò 16 ¿Ê¿ô¤ËÊѹ¹¤·¤Þ¤¹¡£ 5.5.2 ¹à¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£
dbx
¥Ç¥Ð¥Ã¥¬¤Ç¤Ï¡¤¥³¥Þ¥ó¥É¡¦¥Ò¥¹¥È¥ê¡¤¥³¥Þ¥ó¥É¹ÔÊÔ½¸¡¤¤ª¤è¤Ó¥·¥ó¥Ü¥ë̾¤ÎÊä´°¤¬²Äǽ¤Ç¤¹¡£
¤Þ¤¿¡¤dbx
¥Ç¥Ð¥Ã¥¬¤Ç¤Ï¡¤ÆþÎϹԤËÊ£¿ô¤Î¥³¥Þ¥ó¥É¤ò»ÈÍѤ¹¤ë¤³¤È¤¬¤Ç¤¤Þ¤¹¡£
¤³¤ì¤é¤Îµ¡Ç½¤ò»ÈÍѤ¹¤ë¤È¡¤É¬Í×¤ÊÆþÎÏ¿ô¤ò¸º¤é¤·¤¿¤ê¡¤Á°¤Ë¼Â¹Ô¤·¤¿¥³¥Þ¥ó¥É¤ò·«¤êÊÖ¤¹¤³¤È¤¬¤Ç¤¤Þ¤¹¡£
5.4.1 dbx ¥³¥Þ¥ó¥É¤Î·«¤êÊÖ¤·
dbx
¥Ç¥Ð¥Ã¥¬¤Ï¡¤¥³¥Þ¥ó¥É¤Î¥Ò¥¹¥È¥ê¤òµ²±¤·¤Æ¡¤ºÆÆþÎϤ·¤Ê¤¯¤Æ¤â¥Ç¥Ð¥Ã¥¬¡¦¥³¥Þ¥ó¥É¤ò·«¤êÊÖ¤·ÆþÎϤǤ¤ë¤è¤¦¤Ë¤·¤Þ¤¹¡£
¤³¤ì¤é¤Î¥³¥Þ¥ó¥É¤Ï¡¤history
¥³¥Þ¥ó¥É¤ò»ÈÍѤ·¤ÆÉ½¼¨¤¹¤ë¤³¤È¤¬¤Ç¤¤Þ¤¹¡£
$lines
ÊÑ¿ô¤Ï¡¤µ²±¤¹¤ë¥Ò¥¹¥È¥ê¹Ô¤Î¿ô¤òÀ©¸æ¤·¤Þ¤¹¡£
¾Êά»þ¤ÎÀßÄê¤Ï¡¤20 ¥³¥Þ¥ó¥É¤Ç¤¹¡£
set
¥³¥Þ¥ó¥É¤ò»ÈÍѤ·¤Æ¡¤$lines
ÊÑ¿ô¤òÊѹ¹¤¹¤ë¤³¤È¤¬¤Ç¤¤Þ¤¹¡£
5.5.1 ¹à¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£
¥³¥Þ¥ó¥É¤ò·«¤êÊÖ¤¹¤Ë¤Ï¡¤[Return]
¥¡¼¡¤¤Þ¤¿¤Ï´¶Ã²Éä (!
) ¥³¥Þ¥ó¥É¤Î 1 ¤Ä¤ò»ÈÍѤ·¤Þ¤¹¡£
¼¡¤Îɽ¤Ë¡¤history
¥³¥Þ¥ó¥É¤Î·Á¼°¤ò¼¨¤·¤Þ¤¹¡£
history
¥Ò¥¹¥È¥ê¡¦¥ê¥¹¥È¤Î¥³¥Þ¥ó¥É·²¤òɽ¼¨¤¹¤ë¡£
ºÇ¸å¤ËÆþÎϤ·¤¿¥³¥Þ¥ó¥É¤ò·«¤êÊÖ¤¹¡£
¤³¤Îµ¡Ç½¤Ï¡¤$repeatmode
ÊÑ¿ô¤ò 0 ¤ËÀßÄꤹ¤ë¤È¥ª¥Õ¤Ë¤Ê¤ë¡£
5.5.1 ¹à¤ò»²¾È¡£
!string
»ØÄꤷ¤¿Ê¸»úÎó¤Ç»Ï¤Þ¤ë¥³¥Þ¥ó¥É¤ÇºÇ¿·¤Î¤â¤Î¤ò·«¤êÊÖ¤¹¡£
!integer
»ØÄꤷ¤¿À°¿ô¤ËÂбþ¤¹¤ë¥³¥Þ¥ó¥É¤ò·«¤êÊÖ¤¹¡£
!-integer
ºÇ¸å¤ËÆþÎϤ·¤¿¥³¥Þ¥ó¥É¤«¤é¿ô¤¨¤Æ¡¤»ØÄꤷ¤¿¿ô (integer) ¤À¤±Á°¤Ë¼Â¹Ô¤·¤¿¥³¥Þ¥ó¥É¤ò·«¤êÊÖ¤¹¡£
¼¡¤ÎÎã¤Ç¤Ï¡¤¥Ò¥¹¥È¥ê¡¦¥ê¥¹¥È¤òɽ¼¨¤·¤¿¸å¡¤¥ê¥¹¥È¤Î 12 ÈÖÌܤΥ³¥Þ¥ó¥É¤òºÆ¼Â¹Ô¤·¤Æ¤¤¤Þ¤¹¡£
(dbx) history 10 print x 11 print y 12 print z (dbx) !12 (!12 = print z) 123 (dbx)
dbx
¥Ç¥Ð¥Ã¥¬¤Ë¤Ï¡¤¥³¥Þ¥ó¥É¹ÔÊÔ½¸¤Î¤¿¤á¤Î¥³¥Þ¥ó¥É¤¬È÷¤ï¤Ã¤Æ¤¤¤Þ¤¹¡£
¤³¤ì¤é¤Î¥³¥Þ¥ó¥É¤ò»ÈÍѤ¹¤ë¤È¡¤¥³¥Þ¥ó¥ÉÁ´Éô¤òºÆÆþÎϤ»¤º¤Ë¥¿¥¤¥×¡¦¥ß¥¹¤òÄûÀµ¤¹¤ë¤³¤È¤¬¤Ç¤¤Þ¤¹¡£
¥³¥Þ¥ó¥É¹Ô¤ÎÊÔ½¸¤ò»ÈÍѲÄǽ¤Ë¤¹¤ë¤Ë¤Ï¡¤dbx
¤ò¸Æ¤Ó½Ð¤¹Á°¤Ë¡¤EDITOR
¡¤EDITMODE
¡¤¤Þ¤¿¤Ï
LINEEDIT
´Ä¶ÊÑ¿ô¤òÀßÄꤷ¤Þ¤¹¡£
C ¥·¥§¥ë¤Î¾ì¹ç¤Ë
LINEEDIT
¤òÀßÄꤹ¤ë¤Ë¤Ï¡¤¼¡¤Î¥³¥Þ¥ó¥É¤òÆþÎϤ·¤Þ¤¹¡£
% setenv LINEEDIT
Bourn ¥·¥§¥ë¤¢¤ë¤¤¤Ï Korn ¥·¥§¥ë¤Î¾ì¹ç¤Ï¡¤¼¡¤Î¥³¥Þ¥ó¥É¤òÆþÎϤ·¤Þ¤¹¡£
% export LINEEDIT
¤³¤Î¥Ç¥Ð¥Ã¥¬¤Ç¤Ï¡¤¥³¥Þ¥ó¥É¹ÔÊÔ½¸¤Ç¼¡¤Î¥â¡¼¥É¤¬»ÈÍѤǤ¤Þ¤¹¡£
´Ä¶ÊÑ¿ô
LINEEDIT
¤¬ÀßÄꤵ¤ì¤Æ¤¤¤Ê¤¤¤È¤¤Ë¡¤´Ä¶ÊÑ¿ô
EDITMODE
¤Þ¤¿¤Ï
EDITOR
¤Î¤¤¤º¤ì¤«¤ËºÇ¸å¤¬
vi
¤Î¥Ñ¥¹¤¬´Þ¤Þ¤ì¤Æ¤¤¤ë¾ì¹ç¡¤¥Ç¥Ð¥Ã¥¬¤Ï¡¤Korn ¥·¥§¥ë¤Î
vi
¥â¡¼¥É¤Ë»÷¤¿¥³¥Þ¥ó¥É¹ÔÊÔ½¸¥â¡¼¥É¤ò»ÈÍѤ·¤Þ¤¹¡£
¤³¤Î¥â¡¼¥É¤Ç¤Ï¡¤¼¡¤ÎÊÔ½¸¥¡¼¤¬Ç§¼±¤µ¤ì¤Þ¤¹¡£
$ + - 0 A B C D E F I R S W X ^ a b c d e f h i j k l r s w x ~ Ctrl/D Ctrl/H Ctrl/J Ctrl/L Ctrl/M Ctrl/V
¾ÜºÙ¤Ë¤Ä¤¤¤Æ¤Ï¡¤
ksh
(1)
´Ä¶ÊÑ¿ô
LINEEDIT
¤¬¡¤¶õʸ»úÎó¤ò´Þ¤á¡¤Ç¤°Õ¤ÎÃͤËÀßÄꤵ¤ì¤Æ¤¤¤ë¤«¡¤¤Þ¤¿¤Ï
LINEEDIT
¤¬ÀßÄꤵ¤ì¤Æ¤¤¤Ê¤¤¤È¤¡¤´Ä¶ÊÑ¿ô
EDITMODE
¤Þ¤¿¤Ï
EDITOR
¤Ë
emacs
¤Ç½ª¤ï¤ë¥Ñ¥¹¤¬´Þ¤Þ¤ì¤Æ¤¤¤ë¾ì¹ç¤Ë¤Ï¡¤¥Ç¥Ð¥Ã¥¬¤Ï Korn ¥·¥§¥ë¤Î
emacs
¥â¡¼¥É¤Ë»÷¤¿¥³¥Þ¥ó¥É¹ÔÊÔ½¸¥â¡¼¥É¤ò»ÈÍѤ·¤Þ¤¹¡£
¤³¤Î¥â¡¼¥É¤Ï¡¤LINEEDIT
¡¤EDITOR
¡¤¤Þ¤¿¤Ï
EDITMODE
¤Î¤¤¤º¤ì¤Ë¤è¤ê»ÈÍѤ¬²Äǽ¤Ë¤Ê¤Ã¤Æ¤¤¤ë¤«¤Ë¤è¤Ã¤Æ¡¤Æ°ºî¤¬¼ã´³°Û¤Ê¤ê¤Þ¤¹¡£
ɽ 5-7
¤Ë¡¤emacs
¥â¡¼¥É¤Î¥³¥Þ¥ó¥É¹ÔÊÔ½¸¥³¥Þ¥ó¥É¤ò¼¨¤·¤Þ¤¹¡£
ɽ 5-7: emacs ¥â¡¼¥É¤Î dbx ¥³¥Þ¥ó¥É¹ÔÊÔ½¸¥³¥Þ¥ó¥É
¥³¥Þ¥ó¥É | µ¡Ç½ |
Ctrl/A | ¥³¥Þ¥ó¥É¹Ô¤Î¹ÔƬ¤Ë¥«¡¼¥½¥ë¤ò°Üư¤¹¤ë¡£ |
Ctrl/B | ¥«¡¼¥½¥ë¤ò 1 ʸ»úÁ°¤Ë°Üư¤¹¤ë¡£ |
Ctrl/C | ¹Ô¤ò¾Ãµî¤¹¤ë¡£ |
Ctrl/D | ¥«¡¼¥½¥ë¤Î°ÌÃ֤ˤ¢¤ëʸ»ú¤òºï½ü¤¹¤ë¡£ |
Ctrl/E | ¹ÔËö¤Ø¥«¡¼¥½¥ë¤ò°Üư¤¹¤ë¡£ |
Ctrl/F | ¥«¡¼¥½¥ë¤ò 1 ʸ»ú¸å¤Ë°Üư¤¹¤ë¡£ |
Ctrl/H | ¥«¡¼¥½¥ë¤ÎľÁ°¤Îʸ»ú¤òºï½ü¤¹¤ë¡£ |
Ctrl/J | ¤½¤Î¹Ô¤ò¼Â¹Ô¤¹¤ë¡£ |
Ctrl/K | (EDITOR
¤Þ¤¿¤Ï
EDITMODE
¤Ë¤è¤Ã¤Æ»ÈÍѤ¬²Äǽ¤Ë¤Ê¤Ã¤Æ¤¤¤ë¾ì¹ç) ¥«¡¼¥½¥ë°ÌÃÖ¤«¤é¹ÔËö¤Þ¤Ç¤òºï½ü¤¹¤ë¡£
¸½ºß¤Î¥«¡¼¥½¥ë°ÌÃÖ¤è¤ê¾®¤µ¤¤ÃͤοôÃͥѥé¥á¡¼¥¿¤¬¤½¤ÎÁ°¤Ë»ØÄꤵ¤ì¤Æ¤¤¤ë¾ì¹ç¤Ï¡¤Åö³º°ÌÃÖ¤«¤é¥«¡¼¥½¥ë¤Þ¤Ç¤òºï½ü¤¹¤ë¡£
¸½ºß¤Î¥«¡¼¥½¥ë°ÌÃÖ¤è¤êÂ礤ÊÃͤοôÃͥѥé¥á¡¼¥¿¤¬¤½¤ÎÁ°¤Ë»ØÄꤵ¤ì¤Æ¤¤¤ë¾ì¹ç¤Ï¡¤¥«¡¼¥½¥ë°ÌÃÖ¤«¤éÅö³º°ÌÃ֤ޤǤòºï½ü¤¹¤ë¡£ |
Ctrl/K
char |
(LINEEDIT
¤Ë¤è¤Ã¤Æ»ÈÍѤ¬²Äǽ¤Ë¤Ê¤Ã¤Æ¤¤¤ë¾ì¹ç)
char
¤Ç»ØÄꤷ¤¿Ê¸»ú¾å¤Ë¤¢¤ë¥«¡¼¥½¥ë¤Þ¤Ç¤Îʸ»ú¤òºï½ü¤¹¤ë¡£ |
Ctrl/L | ¸½ºß¤Î¹Ô¤òºÆÉ½¼¨¤¹¤ë¡£ |
Ctrl/M | ¤½¤Î¹Ô¤ò¼Â¹Ô¤¹¤ë¡£ |
Ctrl/N | ¥Ò¥¹¥È¥ê¡¦¥ê¥¹¥È¤ÎÃæ¤Î 1 ¹ÔÀè¤Ë°Üư¤¹¤ë¡£ |
Ctrl/P | ¥Ò¥¹¥È¥ê¡¦¥ê¥¹¥È¤ÎÃæ¤Î 1 ¹Ô¸å¤Ë°Üư¤¹¤ë¡£ |
Ctrl/R
char |
»ØÄꤷ¤¿Ê¸»ú¤ò¸½ºß¤Î¹Ô¤ÎÃæ¤Çõº÷¤¹¤ë¡£ |
Ctrl/T | ¥«¡¼¥½¥ë¤ÎľÁ°¤Î 2 ʸ»ú¤òÆþ¤ìÂØ¤¨¤ë¡£ |
Ctrl/U | ¼¡¤Îʸ»ú¤ò 4 ²ó·«¤êÊÖ¤¹¡£ |
Ctrl/W | ¸½ºß¤Î¹ÔÁ´ÂΤòºï½ü¤¹¤ë¡£ |
Ctrl/Y | Ctrl/K ¤Çºï½ü¤·¤¿¥Æ¥¥¹¥È¤ò¥«¡¼¥½¥ë¤ÎľÁ°¤ËÁÞÆþ¤¹¤ë¡£ |
Ctrl/Z | ¥Õ¥¡¥¤¥ë̾¤Þ¤¿¤Ï¥·¥ó¥Ü¥ë̾¤òÊä´°¤¹¤ë¡£ |
Escape | ¥Õ¥¡¥¤¥ë̾¤Þ¤¿¤Ï¥·¥ó¥Ü¥ë̾¤òÊä´°¤¹¤ë¡£ |
²¼¸þ¤Ìð°õ | ¥Ò¥¹¥È¥ê¡¦¥ê¥¹¥È¤ÎÃæ¤Î 1 ¹ÔÀè¤Ë°Üư¤¹¤ë¡£ |
¾å¸þ¤Ìð°õ | ¥Ò¥¹¥È¥ê¡¦¥ê¥¹¥È¤ÎÃæ¤Î 1 ¹Ô¸å¤Ë°Üư¤¹¤ë¡£ |
º¸¸þ¤Ìð°õ | ¥«¡¼¥½¥ë¤ò 1 ʸ»úÁ°¤Ë°Üư¤¹¤ë¡£ |
±¦¸þ¤Ìð°õ | ¥«¡¼¥½¥ë¤ò 1 ʸ»ú¸å¤Ë°Üư¤¹¤ë¡£ |
¥»¥ß¥³¥í¥ó (;) ¤ò¶èÀڤ굹æ¤È¤·¤Æ»ÈÍѤ·¤Æ¡¤¥³¥Þ¥ó¥É¹Ô¤ËÊ£¿ô¤Î¥³¥Þ¥ó¥É¤òÆþÎϤ¹¤ë¤³¤È¤¬¤Ç¤¤Þ¤¹¡£
¤³¤Îµ¡Ç½¤Ï¡¤when
¥³¥Þ¥ó¥É¤ò»ÈÍѤ·¤Æ¤¤¤ë¾ì¹ç¤Ë͸ú¤Ç¤¹¡£
5.8.4 ¹à¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£
1 ¤Ä¤Î¥³¥Þ¥ó¥É¹Ô¤Ë 2 ¤Ä¤Î¥³¥Þ¥ó¥É¤¬¤¢¤ëÎã¤ò¼¡¤Ë¼¨¤·¤Þ¤¹¡£ ºÇ½é¤Î¥³¥Þ¥ó¥É¤Ç¥×¥í¥°¥é¥à¤òÄä»ß¤µ¤»¡¤2 ¤ÄÌܤΥ³¥Þ¥ó¥É¤Ç¤½¤ì¤òºÆ¼Â¹Ô¤·¤Æ¤¤¤Þ¤¹¡£
(dbx) stop at 40; rerun [2] stop at "sam.c":40 [2] stopped at [main:40 ,0x120000b40] i=strlen(line1.string); (dbx)
dbx
¥Ç¥Ð¥Ã¥¬¤ò»ÈÍѤ·¤Æ¡¤¥·¥ó¥Ü¥ë̾¤òÊä´°¤¹¤ë¤³¤È¤¬¤Ç¤¤Þ¤¹¡£
̾Á°¤Î°ìÉô¤ò»ØÄꤷ¤Æ Ctrl/Z ¤ò²¡¤¹¤È¡¤dbx
¤Ï¡¤¸ÇͤÎÀÜÆ¬¸ì¤Ç»Ï¤Þ¤ë̾Á°¤òÊä´°¤·¤Þ¤¹¡£
¸«¤Ä¤«¤Ã¤¿Ì¾Á°¤¬ 1 ¤Ä¤Î¾ì¹ç¡¤dbx
¤Ï¤½¤Î̾Á°¤òÊä´°¤·¤ÆºÆÉ½¼¨¤·¤Þ¤¹¡£
2 ¤Ä°Ê¾å¤Î̾Á°¤¬¸«¤Ä¤«¤Ã¤¿¾ì¹ç¤Ë¤Ï¡¤°ìÃפ¹¤ë¤¹¤Ù¤Æ¤Î¥·¥ó¥Ü¥ë̾¤¬É½¼¨¤µ¤ì¡¤¤½¤Î 1 ¤Ä¤òÁªÂò¤¹¤ë¤³¤È¤¬¤Ç¤¤Þ¤¹¡£
¥·¥ó¥Ü¥ë̾¤ÎÊä´°¤ò»ÈÍѲÄǽ¤Ë¤¹¤ë¤Ë¤Ï¡¤5.4.2 ¹à¤ÇÀâÌÀ¤¹¤ëÊýË¡¤Ç¥³¥Þ¥ó¥É¹ÔÊÔ½¸¤ò»ÈÍѲÄǽ¤ËÀßÄꤹ¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£
¼¡¤ÎÎã¤Ç¤Ï¡¤±Ñ»ú
i
¤Ç»Ï¤Þ¤ë¤¹¤Ù¤Æ¤Î̾Á°¤òɽ¼¨¤·¤Æ¤¤¤Þ¤¹¡£
(dbx) i [Ctrl/Z] ioctl.ioctl .ioctl isatty.isatty .isatty i int [1] (dbx) i [2]
¥Ç¡¼¥¿·¿¤ª¤è¤Ó¥é¥¤¥Ö¥é¥ê¤Î¥·¥ó¥Ü¥ë¤¬´Þ¤Þ¤ì¤Æ¤¤¤ë²ÄǽÀ¤¬¤¢¤ê¤Þ¤¹¡£ [Îã¤ËÌá¤ë]
»ØÄê¤Îʸ»ú¤Ç»Ï¤Þ¤ë¤¹¤Ù¤Æ¤Î̾Á°¤ò¥ê¥¹¥È¤·¤¿¸å¡¤Ê̤Îʸ»ú¤Î»ØÄꤪ¤è¤ÓºÆÃµº÷¤¬¤Ç¤¤ë¤è¤¦¤Ë¡¤dbx
¤Ï¥×¥í¥ó¥×¥È¤È¤È¤â¤Ë»öÁ°¤Ë»ØÄꤵ¤ì¤¿Ê¸»úÎó¤òºÆÉ½¼¨¤·¤Þ¤¹¡£
[Îã¤ËÌá¤ë]
(dbx) print file [Ctrl/Z] (dbx) print file_header_ptr 0x124ac (dbx)
dbx
¥Ç¥Ð¥Ã¥¬¤Ë¤Ï¡¤dbx
ÊÑ¿ô¤ÎÀßÄꤪ¤è¤Óºï½ü¡¤ÊÌ̾¤ÎºîÀ®¤ª¤è¤Óºï½ü¡¤¥µ¥Ö¥·¥§¥ë¤Îµ¯Æ°¡¤¾õÂ֥ꥹ¥È¹àÌܤθ¡ºº¤ª¤è¤Óºï½ü¡¤¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ë´ØÏ¢¤¹¤ë¥ª¥Ö¥¸¥§¥¯¥È¡¦¥Õ¥¡¥¤¥ë¡¦¥ê¥¹¥È¤Îɽ¼¨¡¤ÆþÎϤεϿ¤ª¤è¤ÓºÆÀ¸¤Î¤¿¤á¤Î¥³¥Þ¥ó¥É¤¬ÍѰդµ¤ì¤Æ¤¤¤Þ¤¹¡£
5.5.1 ÊÑ¿ô¤ÎÀßÄꤪ¤è¤Óºï½ü
set
¥³¥Þ¥ó¥É¤Ï¡¤dbx
ÊÑ¿ô¤ÎÄêµÁ¡¤´û¸¤Î
dbx
ÊÑ¿ôÃͤÎÊѹ¹¡¤dbx
ÄêµÁºÑ¤ßÊÑ¿ô¤Î¥ê¥¹¥È¤Îɽ¼¨¤Ê¤É¤ò¹Ô¤¤¤Þ¤¹¡£
unset
¥³¥Þ¥ó¥É¤Ï¡¤dbx
ÊÑ¿ô¤òºï½ü¤·¤Þ¤¹¡£
¥×¥í¥°¥é¥àÊÑ¿ô¤ª¤è¤Ó¥Ç¥Ð¥Ã¥¬ÊÑ¿ô¤ÎÃͤòɽ¼¨¤¹¤ë¤Ë¤Ï¡¤print
¥³¥Þ¥ó¥É¤òɽ¼¨¤·¤Þ¤¹¡£
dbx
¤ÎÄêµÁºÑ¤ßÊÑ¿ô¤Ë¤Ä¤¤¤Æ¤Ï¡¤É½ 5-8
¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£
¥×¥í¥°¥é¥àÊÑ¿ô¤ÈƱ¤¸Ì¾Á°¤Ç¥Ç¥Ð¥Ã¥¬ÊÑ¿ô¤òÄêµÁ¤¹¤ë¤³¤È¤Ï¤Ç¤¤Þ¤»¤ó¡£
set
¤ª¤è¤Ó
unset
¥³¥Þ¥ó¥É¤Î·Á¼°¤Ï¼¡¤Î¤È¤ª¤ê¤Ç¤¹¡£
set
dbx
¤ÎÄêµÁºÑ¤ßÊÑ¿ô¤Î¥ê¥¹¥È¤òɽ¼¨¤¹¤ë¡£
set VAR = EXP
ÊÑ¿ô¤Ë¿·¤·¤¤Ãͤò³ä¤êÅö¤Æ¤ë¤«¡¤¤Þ¤¿¤Ï¿·¤·¤¤ÊÑ¿ô¤òÄêµÁ¤¹¤ë¡£
unset VAR
dbx
ÊÑ¿ô¤ÎÃͤòÀßÄê²ò½ü¤¹¤ë¡£
¼¡¤ÎÎã¤Ï¡¤set
¤ª¤è¤Ó
unset
¥³¥Þ¥ó¥É¤Î»ÈÍÑÎã¤ò¼¨¤·¤Æ¤¤¤Þ¤¹¡£
(dbx) set [1] $listwindow 10 $datacache 1 $main "main" $pagewindow 22 test 5 $page 1 $maxstrlen 128 $cursrcline 24 more (n if no)? n (dbx) set test = 12 [2] (dbx) set $listwindow 10 $datacache 1 $main "main" $pagewindow 22 test 12 $page 1 $maxstrlen 128 $cursrcline 24 more (n if no)? n (dbx) unset test [3] (dbx) set $listwindow 10 $datacache 1 $main "main" $pagewindow 22 $page 1 $maxstrlen 128 $cursrcline 24 more (n if no)? n (dbx)
dbx
ÄêµÁºÑ¤ßÊÑ¿ô¤Î¥ê¥¹¥È¤òɽ¼¨¤·¤Þ¤¹¡£
[Îã¤ËÌá¤ë]
ÊÑ¿ô¤Ë¿·¤·¤¤Ãͤò³ä¤êÅö¤Æ¤Þ¤¹¡£ [Îã¤ËÌá¤ë]
ÊÑ¿ô¤òºï½ü¤·¤Þ¤¹¡£ [Îã¤ËÌá¤ë]
ɽ 5-8
¤ËÄêµÁºÑ¤ß¤Î
dbx
¤ÎÊÑ¿ô¤ò¼¨¤·¤Þ¤¹¡£
¡Ö¥¿¥¤¥×¡×Íó¤Î I ¤ÏÀ°ÊÑ¿ô¡¤B ¤Ï¥Ö¡¼¥ëÊÑ¿ô¡¤S ¤Ïʸ»úÊÑ¿ô¤ò¼¨¤·¤Þ¤¹¡£
¥Æ¥¹¥È¤Ï²Äǽ¤Ç¤¢¤ë¤¬Êѹ¹¤Ç¤¤Ê¤¤ÊÑ¿ô¤Ï R ¤Ç¼¨¤·¤Þ¤¹¡£
ɽ 5-8: ÄêµÁºÑ¤ß¤Î dbx ÊÑ¿ô
¥¿¥¤¥× | ÊÑ¿ô̾ | ¾Êά»þ¤ÎÃÍ | ÀâÌÀ |
S | $addrfmt |
"0x%lx" |
¥¢¥É¥ì¥¹¤Î¥Õ¥©¡¼¥Þ¥Ã¥È¤ò»ØÄꤹ¤ë¡£
¤³¤ÎÊÑ¿ô¤Ï¡¤C ¸À¸ì¤Î
printf
ʸ¤Ç¥Õ¥©¡¼¥Þ¥Ã¥È¤Ç¤¤ë¤â¤Î¤Ç¤¢¤ì¤Ð¤¤¤º¤ì¤Ë¤âÀßÄꤹ¤ë¤³¤È¤¬¤Ç¤¤ë¡£ |
B | $assignverify |
1 | ÊÑ¿ô¤ËÃͤò³ä¤êÅö¤Æ¤ë¾ì¹ç¤Ë¿·¤·¤¤Ãͤòɽ¼¨¤¹¤ë¤«¤É¤¦¤«¤ò»ØÄꤹ¤ë¡£ |
B | $asynch_interface |
0 | Ê£¿ô¤ÎÈ󯱴ü¥×¥í¥»¥¹¤òÀ©¸æ¤¹¤ë¤è¤¦¤Ë
dbx
¤ò¹½À®¤¹¤ë (¤Þ¤¿¤Ï¡¤¤Ç¤¤ë) ¤«¤É¤¦¤«¤òÀ©¸æ¤¹¤ë¡£
¥×¥í¥»¥¹¤¬¥¢¥¿¥Ã¥Á¤µ¤ì¤ë¤È 1 ¤À¤±Áý²Ã¤µ¤ì¡¤¥×¥í¥»¥¹¤¬½ªÎ»¤¹¤ë¤«¥Ç¥¿¥Ã¥Á¤µ¤ì¤ë¤È 1 ¤À¤±¸º¾¯¤µ¤ì¤ë¡£
¥æ¡¼¥¶¤Ë¤è¤ëÀßÄê¤â²Äǽ¡£
0 ¤Þ¤¿¤ÏÉé¤ÎÃͤ¬ÀßÄꤵ¤ì¤¿¾ì¹ç¡¤È󯱴üŪ¥Ç¥Ð¥Ã¥°¤Ï»ÈÍÑÉÔǽ¤Ë¤Ê¤ë¡£ |
B | $break_during_step |
0 | step/stepi ,
next/nexti ,
call ,
return
¤Ê¤É¤Î½èÍýÃæ¤Ë¥Ö¥ì¡¼¥¯¥Ý¥¤¥ó¥È¤ò¥Á¥§¥Ã¥¯¤¹¤ë¤«¤É¤¦¤«¤òÀ©¸æ¤¹¤ë¡£ |
B | $casesense |
0 | ¥½¡¼¥¹Ãµº÷¤ª¤è¤ÓÊÑ¿ô¤ÇÂçʸ»ú¤È¾®Ê¸»ú¤ò¶èÊ̤¹¤ë¤«¤É¤¦¤«¤ò»ØÄꤹ¤ë¡£ 0 °Ê³°¤ÎÃͤ϶èÊ̤¹¤ë¤³¤È¤ò°ÕÌ£¤·¡¤0 ¤Ï¶èÊ̤·¤Ê¤¤¤³¤È¤òɽ¤¹¡£ |
I R | $curevent |
0 | status
¥³¥Þ¥ó¥É¤Ë¤è¤Ã¤ÆºÇ¸å¤ËÊó¹ð¤µ¤ì¤¿¥¤¥Ù¥ó¥ÈÈÖ¹æ¤òɽ¼¨¤¹¤ë¡£ |
I R | $curline |
0 | ¥½¡¼¥¹¡¦¥³¡¼¥É¤Î¸½ºß¤Î¹Ô¤òɽ¼¨¤¹¤ë¡£ |
I R | $curpc |
- | ¸½ºß¤Î¥¢¥É¥ì¥¹¤òɽ¼¨¤¹¤ë¡£
wi
¤ª¤è¤Ó
li
¤ÎÊÌ̾¤Ç»ÈÍѤ¹¤ë¡£ |
I R | $cursrcline |
1 | ɽ¼¨¤µ¤ì¤¿ºÇ¸å¤Î¹Ô¤Î¹ÔÈÖ¹æ¤Ë 1 ¤ò²Ã¤¨¤¿¤â¤Î¤òɽ¼¨¤¹¤ë¡£ |
B | $datacache |
1 | ¥Ç¡¼¥¿Îΰ褫¤é¾ðÊó¤ò¥¥ã¥Ã¥·¥å¤·¤Æ¡¤dbx
¤¬ 1 ÅÙ¤À¤±¥Ç¡¼¥¿Îΰè¤ò³Îǧ¤¹¤ì¤Ð¤¹¤à¤è¤¦¤Ë¤¹¤ë¡£
¥ª¥Ú¥ì¡¼¥Æ¥£¥ó¥°¡¦¥·¥¹¥Æ¥à¤ò¥Ç¥Ð¥Ã¥°¤¹¤ë¾ì¹ç¤Ë¤Ï¡¤¤³¤ÎÊÑ¿ô¤ò 0 ¤ËÀßÄꤹ¤ë¡£
¾¤Î¥·¥¹¥Æ¥à¤ò¥Ç¥Ð¥Ã¥°¤¹¤ë¾ì¹ç¤Ï¡¤Èó¥¼¥íÃͤËÀßÄꤹ¤ë¡£ |
S R | $defaultin |
¥Ì¥ëʸ»úÎó | record
input
¥³¥Þ¥ó¥É¤ò»ÈÍѤ¹¤ë¾ì¹ç¤Ë¡¤dbx
¤¬¾ðÊó¤ò³ÊǼ¤¹¤ë¤¿¤á¤Ë»ÈÍѤ¹¤ë¥Õ¥¡¥¤¥ë̾¤òɽ¼¨¤¹¤ë¡£ |
S R | $defaultout |
¥Ì¥ëʸ»úÎó | record
output
¥³¥Þ¥ó¥É¤ò»ÈÍѤ¹¤ë¾ì¹ç¤Ë¡¤dbx
¤¬¾ðÊó¤ò³ÊǼ¤¹¤ë¤¿¤á¤Ë»ÈÍѤ¹¤ë¥Õ¥¡¥¤¥ë̾¤òɽ¼¨¤¹¤ë¡£ |
B | $dispix |
0 | 1 ¤Î¾ì¹ç¡¤pixie
¥â¡¼¥É¤Ç¥Ç¥Ð¥Ã¥°¤¹¤ëºÝ¤Ë¼ÂÌ¿Îá¤Î¤ß¤òɽ¼¨¤¹¤ë¡£ |
B | $hexchars |
̤ÄêµÁ | Èó¥¼¥íÃͤϡ¤Ê¸»ú¤¬ 16 ¿Ê¿ô¤Çɽ¼¨¤µ¤ì¤ë¤³¤È¤ò¼¨¤¹¡£ |
B | $hexin |
̤ÄêµÁ | Èó¥¼¥íÃͤϡ¤ÆþÎϤµ¤ì¤¿Äê¿ô¤¬ 16 ¿Ê¿ô¤Ç¤¢¤ë¤³¤È¤ò¼¨¤¹¡£ |
B | $hexints |
̤ÄêµÁ | Èó¥¼¥íÃͤϡ¤½ÐÎϤµ¤ì¤ëÄê¿ô¤¬ 16 ¿Ê¿ô¤Çɽ¼¨¤µ¤ì¤ë¤³¤È¤ò¼¨¤¹¡£ 16 ¿Ê¿ô¤ÎÀßÄê¤Ï 8 ¿Ê¿ô¤ËÍ¥À褹¤ë¡£ |
B | $hexstrings |
̤ÄêµÁ | Èó¥¼¥íÃͤËÀßÄꤹ¤ë¤È¡¤Ê¸»úÎó¤¬ 16 ¿Ê¿ô¤Çɽ¼¨¤µ¤ì¤ë¡£ ¥¼¥í¤Î¾ì¹ç¤Ï¡¤Ê¸»úÎó¤Ï 16 ¿Ê¿ô¤Ç¤Ï¤Ê¤¯Ê¸»ú¤Çɽ¼¨¤µ¤ì¤ë¡£ |
I R | $historyevent |
¤Ê¤· | ¸½ºß¤Î¥Ò¥¹¥È¥êÈÖ¹æ¤òɽ¼¨¤¹¤ë¡£ |
I | $lines |
20 | dbx
¥Ò¥¹¥È¥ê¡¦¥ê¥¹¥È¤Î¥µ¥¤¥º¤ò»ØÄꤹ¤ë¡£ |
I | $listwindow |
$pagewindow/2 |
list
¥³¥Þ¥ó¥É¤¬É½¼¨¤¹¤ë¹Ô¤Î¿ô¤ò»ØÄꤹ¤ë¡£ |
S | $main |
"main" |
¼Â¹Ô¤¬³«»Ï¤µ¤ì¤ë¥×¥í¥·¡¼¥¸¥ã¤Î̾Á°¤ò»ØÄꤹ¤ë¡£
dbx
¤Ï¡¤ÆÃ¤Ë»ØÄꤷ¤Ê¤¤¸Â¤ê¡¤main()
¤Ç³«»Ï¤µ¤ì¤ë¡£ |
I | $maxstrlen |
128 | dbx
¤¬Ê¸»úÎó¤Î¥Ý¥¤¥ó¥¿¤ËÂФ·¤Æ¥×¥ê¥ó¥È¤¹¤ë¡¤Ê¸»úÎó¤ÎºÇÂçʸ»ú¿ô¤ò»ØÄꤹ¤ë¡£ |
S | $module_path
|
¥Ì¥ëʸ»úÎó | dbx
¤¬¥·¥§¥¢¡¼¥É¡¦¥é¥¤¥Ö¥é¥ê (¤Þ¤¿¤Ï¥í¡¼¥É²Äǽ¥«¡¼¥Í¥ë¡¦¥â¥¸¥å¡¼¥ë) ¤ò¸¡º÷¤¹¤ë¥Ç¥£¥ì¥¯¥È¥ê¡¦¥Ñ¥¹¤ò»ØÄꤹ¤ë¡£
¤³¤ÎÊÑ¿ô¤Ï¡¤¤¿¤È¤¨¤Ð¡¤¥³¥¢¡¦¥À¥ó¥× (¤Þ¤¿¤Ï¥«¡¼¥Í¥ë¡¦¥¯¥é¥Ã¥·¥å¡¦¥À¥ó¥×) ¤ò¥Ç¥Ð¥Ã¥°¤·¤Æ¤¤¤Æ¡¤¤½¤Î¥À¥ó¥×¤¬È¯À¸¤·¤¿¤È¤¤Ë¼Â¹Ô¤µ¤ì¤Æ¤¤¤¿¥·¥§¥¢¡¼¥É¡¦¥é¥¤¥Ö¥é¥ê (¤Þ¤¿¤Ï¥â¥¸¥å¡¼¥ë) ¤Î¥Ð¡¼¥¸¥ç¥ó¤¬Ê̤ξì½ê¤Ë°Üư¤µ¤ì¤Æ¤¤¤ë¾ì¹ç¤ËÍÍÑ¡£
¥«¡¼¥Í¥ë¤Î¥Ç¥Ð¥Ã¥°¤Ë¤Ä¤¤¤Æ¤Î¾ÜºÙ¤Ï¡¤¡ØKernel Debugging¡Ù¤ò»²¾È¡£ |
I | $module_verbose
|
0 | ¥¼¥í°Ê³°¤ÎÃͤËÀßÄꤵ¤ì¤Æ¤¤¤ë¤È¡¤¥·¥§¥¢¡¼¥É¡¦¥é¥¤¥Ö¥é¥ê¤Î¥í¡¼¥É»þ¤Ë¡¤dbx
¤Ï¥·¥§¥¢¡¼¥É¡¦¥é¥¤¥Ö¥é¥ê (¤Þ¤¿¤Ï¡¤¥«¡¼¥Í¥ë¤Î¥Ç¥Ð¥Ã¥°»þ¤Ë¤Ï¥í¡¼¥É²Äǽ¥â¥¸¥å¡¼¥ë) ¤Î°ÌÃÖ¤ò¥×¥ê¥ó¥È¤¹¤ë¡£
¾Êά»þ¤ÎÀßÄꡤ¤¢¤ë¤¤¤Ï¡¤¤³¤ÎÃͤ¬ 0 ¤ËÀßÄꤵ¤ì¤Æ¤¤¤ë¾ì¹ç¡¤dbx
¤Ï°ÌÃÖ¤ò¥×¥ê¥ó¥È¤·¤Ê¤¤¡£
¥«¡¼¥Í¥ë¡¦¥Ç¥Ð¥Ã¥°¤Ë¤Ä¤¤¤Æ¤Î¾ÜºÙ¤Ï¡¤¡ØKernel Debugging¡Ù¤ò»²¾È¡£ |
B | $octin |
̤ÄêµÁ | Èó¥¼¥íÃͤËÀßÄꤹ¤ë¤È¡¤¾Êά»þ¤ÎÆþÎÏÄê¿ô¤ò 8 ¿Ê¿ô¤ËÊѹ¹¤¹¤ë¡£ $hexint ¤Ï¡¤¤³¤ÎÀßÄê¤ËÍ¥À褹¤ë¡£ |
B | $octints |
̤ÄêµÁ | Èó¥¼¥íÃͤËÀßÄꤹ¤ë¤È¡¤¾Êά»þ¤Î½ÐÎÏÄê¿ô¤ò 8 ¿Ê¿ô¤ËÊѹ¹¤¹¤ë¡£ $hexints ¤Ï¤³¤ÎÀßÄê¤ËÍ¥À褹¤ë¡£ |
B | $page |
1 | Ť¤¾ðÊó¤ò¥Ú¡¼¥¸¥ó¥°¤¹¤ë¤«¤É¤¦¤«»ØÄꤹ¤ë¡£ Èó¥¼¥íÃͤǥڡ¼¥¸¥ó¥°¤ò¼Â¹Ô¤·¡¤0 ¤Ï¼Â¹Ô¤·¤Ê¤¤¡£ |
I | $pagewindow |
¼ï¡¹ | 1 ²èÌ̤ò±Û¤¨¤ëŤ¤¾ðÊó¤òɽ¼¨¤¹¤ë¾ì¹ç¤Ë¡¤É½¼¨¤¹¤ë¹Ô¿ô¤ò»ØÄꤹ¤ë¡£ ¤³¤ÎÊÑ¿ô¤Ë¤Ï¡¤Ã¼Ëö¤Îɽ¼¨¹Ô¿ô¤òÀßÄꤹ¤ë¡£ 0 ¤ò»ØÄꤹ¤ë¤È¡¤ºÇ¾®ÃͤΠ1 ¹Ô¤ÎÀßÄê¤Ë¤Ê¤ë¡£ ¾Êά»ú¤ÎÃͤÏüËö¤Î¥¿¥¤¥×¤Ë°Í¸¤¹¤ë¡£ ɸ½à¥Ó¥Ç¥ªÃ¼Ëö¤Î¾ì¹ç¤Ï 24¡£ |
B | $pimode |
0 | playback
input
¥³¥Þ¥ó¥É¤ò»ÈÍѤ¹¤ë¾ì¹ç¤ÎÆþÎϤòɽ¼¨¤¹¤ë¡£ |
I | $printdata |
0 | Èó¥¼¥íÃͤËÀßÄꤹ¤ë¤È¡¤Ì¿Îá¤òµÕ¥¢¥»¥ó¥Ö¥ë¤¹¤ë¾ì¹ç¤Ë¥ì¥¸¥¹¥¿¤ÎÃͤ¬É½¼¨¤µ¤ì¤ë¡£ ¥¼¥í¤Î¾ì¹ç¤Ï¡¤¥ì¥¸¥¹¥¿¤ÎÃͤÏɽ¼¨¤µ¤ì¤Ê¤¤¡£ |
B | $printtargets |
1 | 1 ¤ËÀßÄꤷ¤¿¾ì¹ç¡¤É½¼¨¤µ¤ì¤ëµÕ¥¢¥»¥ó¥Ö¥ë¤Î¥ê¥¹¥È¤Ë¡¤¥¸¥ã¥ó¥×Ì¿Îá¤Î¥¿¡¼¥²¥Ã¥È¤Î¥é¥Ù¥ë¤ò´Þ¤á¤ë¡£ 0 ¤ËÀßÄꤷ¤¿¾ì¹ç¤Ï¡¤¤³¤Î¥é¥Ù¥ë¤Îɽ¼¨¤ò¹Ô¤ï¤Ê¤¤¡£ |
B | $printwhilestep |
0 | step
[n] ¤ª¤è¤Ó
stepi
[n] ¤ÎÌ¿Îá¤Ç»ÈÍѤ¹¤ë¡£
¥¼¥í°Ê³°¤ÎÃͤò»ØÄꤹ¤ë¤È¡¤n
¸Ä¤Î¤¹¤Ù¤Æ¤Î¹Ô¤Þ¤¿¤ÏÌ¿Î᤬ɽ¼¨¤µ¤ì¤ë¡£
0 ¤ò»ØÄꤷ¤¿¾ì¹ç¤Ï¡¤ºÇ¸å¤Î¹Ô¤Þ¤¿¤ÏÌ¿Îá¤À¤±¤¬É½¼¨¤µ¤ì¤ë¡£ |
B | $printwide |
0 | ÊÑ¿ô¤òɽ¼¨¤¹¤ë¥Õ¥©¡¼¥Þ¥Ã¥È¤È¤·¤Æ¡¤¿åÊ¿¤Þ¤¿¤Ï¿âľ¤Î¥Õ¥©¡¼¥Þ¥Ã¥È¤ò»ØÄꤹ¤ë¡£ ¿åÊ¿¥Õ¥©¡¼¥Þ¥Ã¥È¤Ï¡¤¹½Â¤ÂΤޤ¿¤ÏÇÛÎó¤Îɽ¼¨¤Ë͸ú¡£ Èó¥¼¥íÃͤϡ¤¿åÊ¿¥Õ¥©¡¼¥Þ¥Ã¥È¤ò¼¨¤·¡¤0 ¤Ï¿âľ¤Î¥Õ¥©¡¼¥Þ¥Ã¥È¤ò¼¨¤¹¡£ |
S | $prompt |
"(dbx)" |
dbx
¤Î¥×¥í¥ó¥×¥È¤òÀßÄꤹ¤ë¡£ |
B | $readtextfile |
1 | 1 ¤ËÀßÄꤷ¤¿¾ì¹ç¡¤dbx
¤Ï¡¤¥×¥í¥»¥¹¤«¤é¤Ç¤Ï¤Ê¤¯¥ª¥Ö¥¸¥§¥¯¥È¡¦¥Õ¥¡¥¤¥ë¤«¤éÌ¿Îá¤òÆÉ¤ß¼è¤í¤¦¤È¤¹¤ë¡£
¤³¤ÎÊÑ¿ô¤Ï¡¤¥Ç¥Ð¥Ã¥°ÂÐ¾Ý¤Î¥×¥í¥»¥¹¤¬¥Ç¥Ð¥Ã¥°½èÍý¤Î´Ö¤Ë¡¤¥³¡¼¥É¤È¤·¤Æ¥³¥Ô¡¼¤µ¤ì¤Æ¤¤¤ë¾ì¹ç¤Ë¤Ï¡¤¾ï¤Ë 0 ¤ËÀßÄꤹ¤ëɬÍפ¬¤¢¤ë¡£
¤¿¤À¤·¡¤Àǽ¤Ï¡¤$readtextfile
¤ò 1 ¤ËÀßÄꤷ¤¿¾ì¹ç¤ÎÊý¤¬Í¥¤ì¤Æ¤¤¤ë¡£ |
B | $regstyle |
1 | »ÈÍѤ¹¤ë¥ì¥¸¥¹¥¿Ì¾¤Î·¿¤ò»ØÄꤹ¤ë¡£
1 ¤ËÀßÄꤷ¤¿¾ì¹ç¤Ï¥Ï¡¼¥É¥¦¥§¥¢Ì¾¤ò»ØÄꤹ¤ë¡£
0 ¤ËÀßÄꤷ¤¿¾ì¹ç¤Ï¡¤¥Õ¥¡¥¤¥ë
regdefs.h
¤ÇÄêµÁ¤µ¤ì¤¿¡¤¥½¥Õ¥È¥¦¥§¥¢Ì¾¤ò»ØÄꤹ¤ë¡£ |
B | $repeatmode |
1 | Return ¥¡¼¤ò²¡¤·¤¿¤È¤¤ËºÇ¸å¤Î¥³¥Þ¥ó¥É¤òºÆ¼Â¹Ô¤Ç¤¤ë¤è¤¦¤Ë¤¹¤ë¤«¤É¤¦¤«¤ò»ØÄꤹ¤ë¡£ Èó¥¼¥íÃͤξì¹ç¤ÏºÇ¸å¤Î¥³¥Þ¥ó¥É¤ÎºÆ¼Â¹Ô¤¬²Äǽ¤Ç¤¢¤ê¡¤¥¼¥í¤Î¾ì¹ç¤Ï·«¤êÊÖ¤µ¤Ê¤¤¡£ |
B | $rimode |
0 | record
output
¥³¥Þ¥ó¥É¤ò»ÈÍѤ¹¤ë¾ì¹ç¤Ë¡¤ÆþÎϤòµÏ¿¤¹¤ë¡£ |
S | $sigvec |
"sigaction" |
¥·¥°¥Ê¥ë¡¦¥Ï¥ó¥É¥é¤òÀßÄꤹ¤ë¤¿¤á¤Ë¥·¥¹¥Æ¥à¤¬¸Æ¤Ó½Ð¤¹¥³¡¼¥É̾¤ò
dbx
¤ËÄÌÃΤ¹¤ë¡£ |
S | $sigtramp |
"_sigtramp" |
¥æ¡¼¥¶¡¦¥·¥°¥Ê¥ë¡¦¥Ï¥ó¥É¥é¤ò¼Â¹Ô¤¹¤ë¤¿¤á¤Ë¥·¥¹¥Æ¥à¤¬¸Æ¤Ó½Ð¤¹¥³¡¼¥É̾¤ò
dbx
¤ËÄÌÃΤ¹¤ë¡£ |
B | $stopall_on_step |
1 | 1 ¤Î¾ì¹ç¡¤dbx
¤Ï¥Õ¥©¡¼¥¯¤µ¤ì¤¿¤¹¤Ù¤Æ¤Î»Ò¥×¥í¥»¥¹¤òÄä»ß¤¹¤ë¡£
0 ¤Î¾ì¹ç¡¤¤µ¤Þ¤¶¤Þ¤Ê¥·¥¹¥Æ¥à¡¦¥³¡¼¥ë¤ª¤è¤Ó¥é¥¤¥Ö¥é¥ê¡¦¥³¡¼¥ë¤ÇÀ¸À®¤µ¤ì¤¿¥Õ¥©¡¼¥¯¤Î¿¤¯¤ò̵»ë¤¹¤ë¡£
$stop_all_forks
¤¬ÀßÄꤵ¤ì¤Æ¤¤¤Ê¤±¤ì¤Ð¡¤$stop_on_fork
¤ÎÃͤ¬¥Õ¥©¡¼¥¯¤Ë¤è¤ë
dbx
¤Îưºî¤ò·èÄꤹ¤ë¡£
$stop_all_forks
¤Ï¡¤Ä̾ï
$stop_on_fork
¤Ë¤è¤Ã¤ÆÌµ»ë¤µ¤ì¤ë¥é¥¤¥Ö¥é¥ê¡¦¥³¡¼¥ë¤ª¤è¤Ó¥·¥¹¥Æ¥à¡¦¥³¡¼¥ëÆâ¤Ç¤Î¥Õ¥©¡¼¥¯¤ò¥È¥é¥Ã¥×¤¹¤ë¡£ |
B | $stop_in_main |
N/A | »ÈÍѤµ¤ì¤Ê¤¤¡£
¤³¤ÎÊÑ¿ô¤Ï
set
¥³¥Þ¥ó¥É¤Ë¤è¤Ã¤ÆÉ½¼¨¤µ¤ì¤ë¤¬¡¤¸½ºß¤Ç¤Ï
dbx
½èÍý¤ËÂФ·¤Æ¸ú²Ì¤Ï¤Ê¤¤¡£ |
B | $stop_on_exec |
1 | dbx
¤¬
execl( )
¤ª¤è¤Ó
execv( )
¤Ø¤Î¸Æ¤Ó½Ð¤·¤ò¸¡½Ð¤·¤Æ¡¤¿·¤·¤¯µ¯Æ°¤µ¤ì¤¿¥¤¥á¡¼¥¸¤ò¼Â¹Ô²Äǽ¥³¡¼¥É¤ÎºÇ½é¤Î¹Ô¤ÇÄä»ß¤¹¤ë¤«¤É¤¦¤«¤ò»ØÄꤹ¤ë¡£ |
B | $stop_on_fork |
1 | 1 ¤Î¾ì¹ç¡¤dbx
¤Ï¡¤fork( )
¤Þ¤¿¤Ï
vfork( )
¸Æ¤Ó½Ð¤·¤Ë¤è¤Ã¤Æµ¯Æ°¤µ¤ì¤¿¿·¤·¤¤¥¤¥á¡¼¥¸¤ò¡¤¤½¤Î¥á¥¤¥ó¤Îµ¯Æ°¥Ý¥¤¥ó¥È¤Þ¤Ç¿Ê¤á¤¿¸å¡¤Ää»ß¤µ¤»¤ë¡£
0 ¤Î¾ì¹ç¡¤¥Ö¥ì¡¼¥¯¥Ý¥¤¥ó¥È¤Þ¤¿¤Ï¥¤¥Ù¥ó¥È¤Ë¤è¤êÄä»ß¤¹¤ë¤Þ¤Ç¡¤½èÍý¤ò³¹Ô¤¹¤ë¡£
$stop_all_forks
¤¬ÀßÄꤵ¤ì¤Æ¤¤¤Ê¤±¤ì¤Ð¡¤dbx
¥×¥í¥°¥é¥à¤Ï¡¤¥·¥¹¥Æ¥à¡¦¥³¡¼¥ë¤Þ¤¿¤Ï¥é¥¤¥Ö¥é¥ê¡¦¥³¡¼¥ë¤«¤é¤Î¥Õ¥©¡¼¥¯¤Ç¤ÎÄä»ß¤ò²óÈò¤·¤è¤¦¤È¤¹¤ë¡£ |
S | $tagfile |
"tags" |
tag
¥³¥Þ¥ó¥É¤ª¤è¤Ó
tagvalue
¥Þ¥¯¥í¤¬¥¿¥°¤òõº÷¤¹¤ë¥Õ¥¡¥¤¥ë¤Ç¤¢¤ë¤³¤È¤ò¼¨¤¹¥Õ¥¡¥¤¥ë̾¤¬Æþ¤Ã¤Æ¤¤¤ë¡£ |
I | $traploops |
3 | ¥×¥í¥°¥é¥à¤¬¥È¥é¥Ã¥×½èÍý¥ë¡¼¥×¤ËÆþ¤Ã¤¿¤È
dbx
¤¬¸«¤Ê¤¹Á°¤Ë¡¤SIGTRAP
¥Ï¥ó¥É¥é¤Ø¤ÎϢ³¤¹¤ë¸Æ¤Ó½Ð¤·¤Î²ó¿ô¤ò»ØÄꤹ¤ë¡£ |
alias
¥³¥Þ¥ó¥É¤Ï¡¤¿·¤·¤¤ÊÌ̾¤òÄêµÁ¤·¤¿¤ê¡¤¤¹¤Ù¤Æ¤Î¸½ºß¤ÎÊÌ̾¤òɽ¼¨¤·¤¿¤ê¤·¤Þ¤¹¡£
alias
¥³¥Þ¥ó¥É¤ò»ÈÍѤ¹¤ë¤È¡¤¤É¤Î¥Ç¥Ð¥Ã¥¬¡¦¥³¥Þ¥ó¥É¤Ë¤â¿·¤·¤¯Ì¾Á°¤òÉÕ¤±¤ë¤³¤È¤¬¤Ç¤¤Þ¤¹¡£
¥¹¥Ú¡¼¥¹¤Î´Þ¤Þ¤ì¤ë¥³¥Þ¥ó¥É¤Ï¡¤°ì½Å¤Þ¤¿¤ÏÆó½Å¤Î°úÍÑÉä¤Ç°Ï¤ó¤Ç¤¯¤À¤µ¤¤¡£
ÊÌ̾¤Î°ìÉô¤È¤·¤Æ¥Þ¥¯¥í¤òÄêµÁ¤¹¤ë¤³¤È¤â¤Ç¤¤Þ¤¹¡£
dbx
¥Ç¥Ð¥Ã¥¬¤Ë¤Ï¡¤¤¢¤é¤«¤¸¤áÄêµÁ¤µ¤ì¤Æ¤¤¤ë°ì·²¤ÎÊÌ̾¤¬¤¢¤ê¤Þ¤¹¡£
¥æ¡¼¥¶¤Ï¡¤¤³¤ì¤é¤ÎÊÌ̾¤òÊѹ¹¤·¤¿¤ê¡¤¤Þ¤¿¤Ï¿·¤·¤¤ÊÌ̾¤òÄɲä·¤¿¤ê¤¹¤ë¤³¤È¤¬¤Ç¤¤Þ¤¹¡£
ÊÌ̾¤ò
.dbxinit
¥Õ¥¡¥¤¥ë¤ËÆþ¤ì¤Æ¤ª¤¯¤³¤È¤Ë¤è¤Ã¤Æ¡¤¸å¤Ç¥Ç¥Ð¥Ã¥°¡¦¥»¥Ã¥·¥ç¥ó¤Ç»ÈÍѤ¹¤ë¤³¤È¤â¤Ç¤¤Þ¤¹¡£
¥³¥Þ¥ó¥É¤ÎÊÌ̾¤òºï½ü¤¹¤ë¤Ë¤Ï¡¤unalias
¥³¥Þ¥ó¥É¤ò»ÈÍѤ·¤Þ¤¹¡£
unalias
¥³¥Þ¥ó¥É¤Ë¤Ïºï½ü¤¹¤ëÊÌ̾¤ò»ØÄꤷ¤Þ¤¹¡£
ÊÌ̾¤Îºï½ü¤Ï¡¤¸½ºß¤Î¥Ç¥Ð¥Ã¥°¡¦¥»¥Ã¥·¥ç¥ó¤Ç¤Î¤ß͸ú¤Ç¤¹¡£
alias
¤ª¤è¤Ó
unalias
¥³¥Þ¥ó¥É¤Î·Á¼°¤Ï¼¡¤Î¤È¤ª¤ê¤Ç¤¹¡£
alias
¤¹¤Ù¤Æ¤ÎÊÌ̾¤Î¥ê¥¹¥È¤òɽ¼¨¤¹¤ë¡£
alias NAME1[(ARG1,...,ARGN)] "NAME2"
¿·¤·¤¤ÊÌ̾¤òÄêµÁ¤¹¤ë¡£
NAME1
¤Ë¤Ï¿·¤·¤¤ÊÌ̾¤ò¡¤NAME2
¤Ë¤Ï¥³¥Þ¥ó¥Éʸ»úÎó¤ò¡¤ARG1,...,ARGN
¤Ë¤Ï¥³¥Þ¥ó¥É¤Î°ú¿ô¤ò»ØÄꤹ¤ë¡£
unalias NAME
¥³¥Þ¥ó¥É¤ÎÊÌ̾¤òºï½ü¤¹¤ë¡£
NAME
¤Ë¤ÏÊÌ̾¤ò»ØÄꤹ¤ë¡£
alias
¤ª¤è¤Ó
unalias
¥³¥Þ¥ó¥É¤Î»ÈÍÑÎã¤ò¼¡¤Ë¼¨¤·¤Þ¤¹¡£
(dbx) alias [1] h history si stepi Si nexti
.
.
.
g goto s step More (n if no) ?n (dbx) alias ok(x) "stop at x" [2] (dbx) ok(52) [3] [2] Stop at "sam.c":52 [4] (dbx) (dbx) unalias h [5] (dbx) alias si stepi Si nexti
.
.
.
g goto s step More (n if no)? n (dbx)
ÊÌ̾¤òɽ¼¨¤·¤Þ¤¹¡£ [Îã¤ËÌá¤ë]
¥Ö¥ì¡¼¥¯¥Ý¥¤¥ó¥È¤òÀßÄꤹ¤ë¤¿¤á¤ËÊÌ̾¤òÄêµÁ¤·¤Þ¤¹¡£ [Îã¤ËÌá¤ë]
52 ¹ÔÌܤ˥֥졼¥¯¥Ý¥¤¥ó¥È¤òÀßÄꤷ¤Þ¤¹¡£ [Îã¤ËÌá¤ë]
52 ¹ÔÌܤ˥֥졼¥¯¥Ý¥¤¥ó¥È¤òÀßÄꤷ¤¿¤³¤È¤ò¥Ç¥Ð¥Ã¥¬¤¬Ç§¼±¤·¤Æ¤¤¤Þ¤¹¡£ [Îã¤ËÌá¤ë]
ÊÌ̾
h
¤òºï½ü¤·¤Þ¤¹¡£
ÊÌ̾¤Î¥ê¥¹¥È¤Ëɽ¼¨¤µ¤ì¤Ê¤¤¤³¤È¤ËÃí°Õ¤·¤Æ¤¯¤À¤µ¤¤¡£
[Îã¤ËÌá¤ë]
status
¥³¥Þ¥ó¥É¤Ï¡¤¼¡¤Î¥³¥Þ¥ó¥É¤Î¤¦¤Á¤Ç¸½ºßÀßÄꤵ¤ì¤Æ¤¤¤ë¤â¤Î¤¬¤¢¤ë¤«¤É¤¦¤«¤ò³Îǧ¤·¤Þ¤¹¡£
¥Ö¥ì¡¼¥¯¥Ý¥¤¥ó¥È¤ËÂФ¹¤ë
stop
¥³¥Þ¥ó¥É¤Þ¤¿¤Ï
stopi
¥³¥Þ¥ó¥É
¹Ôñ°Ì¤ÎÊÑ¿ô¥È¥ì¡¼¥¹ÍѤÎ
trace
¥³¥Þ¥ó¥É¤Þ¤¿¤Ï
tracei
¥³¥Þ¥ó¥É
when
¥³¥Þ¥ó¥É
¥Õ¥¡¥¤¥ë¤Ë¾ðÊó¤òÊݴɤ¹¤ë
record input
¥³¥Þ¥ó¥É¤ª¤è¤Ó
record output
¥³¥Þ¥ó¥É
status
¥³¥Þ¥ó¥É¤Ë¤Ï°ú¿ô¤ÏÉÔÍפǤ¹¡£
Îã
(dbx) status [2] trace i in main [3] stop in prnt [4] record output /tmp/dbxt0018898 (0 lines) (dbx)
Â祫¥Ã¥³Æâ¤ÎÈÖ¹æ (¤¿¤È¤¨¤Ð
[2]
) ¤Ï¡¤¾õÂÖ¹àÌÜÈÖ¹æ¤ò¼¨¤·¤Æ¤¤¤Þ¤¹¡£
5.5.5 ¥Ö¥ì¡¼¥¯¥Ý¥¤¥ó¥È¤Îºï½ü¤¢¤ë¤¤¤Ï̵¸ú²½
delete
¥³¥Þ¥ó¥É¤Ï¡¤¥Ö¥ì¡¼¥¯¥Ý¥¤¥ó¥È¤òºï½ü¤·¡¤Æþ½ÐÎϤεϿ¤ò¤ä¤á¤Þ¤¹¡£
¥Ö¥ì¡¼¥¯¥Ý¥¤¥ó¥È¤Îºï½ü¤ª¤è¤ÓÆþ½ÐÎϵϿ¤ÎÃæ»ß¤Ï¡¤status
¥³¥Þ¥ó¥É¤¬À¸À®¤¹¤ë¾õÂ֥ꥹ¥È¤«¤é³ºÅö¤¹¤ë¹àÌܤòºï½ü¤¹¤ë¤³¤È¤Ë¤è¤Ã¤Æ¹Ô¤ï¤ì¤Þ¤¹¡£
disable
¥³¥Þ¥ó¥É¤Ï¡¤¹àÌܤòºï½ü¤·¤Ê¤¤¤Ç¥Ö¥ì¡¼¥¯¥Ý¥¤¥ó¥È¤ò̵¸ú¤Ë¤·¤Þ¤¹¡£
enable
¥³¥Þ¥ó¥É¤ò»ÈÍѤ¹¤ë¤È¡¤Ìµ¸ú¤Ë¤·¤¿¥¤¥Ù¥ó¥È¤òºÆÅÙ͸ú¤Ë¤¹¤ë¤³¤È¤¬¤Ç¤¤Þ¤¹¡£
delete
¥³¥Þ¥ó¥É¤Î·Á¼°¤Ï¼¡¤Î¤È¤ª¤ê¤Ç¤¹¡£
delete EXP1[,...,EXPN]
»ØÄꤷ¤¿¾õÂÖ¹àÌܤòºï½ü¤¹¤ë¡£
delete all
delete *
¤¹¤Ù¤Æ¤Î¾õÂÖ¹àÌܤòºï½ü¤¹¤ë¡£
delete
¥³¥Þ¥ó¥É¤Î»ÈÍÑÎã¤ò¼¡¤Ë¼¨¤·¤Þ¤¹¡£
(dbx) status [2] record output /tmp/dbxt0018898 (0 lines) [3] trace i in main [4] print pline at "sam.c": [5] stop in prnt (dbx) delete 4 (dbx) status [2] record output /tmp/dbxt0018898 (0 lines) [3] trace i in main [5] stop in prnt (dbx)
disable
¤ª¤è¤Ó
enable
¥³¥Þ¥ó¥É¤Î·Á¼°¤Ï¼¡¤Î¤È¤ª¤ê¤Ç¤¹¡£
disable EVENT1[,EVENT2,...]
enable EVENT1[,EVENT2,...]
»ØÄꤷ¤¿¥¤¥Ù¥ó¥È¤ò͸ú/̵¸ú¤Ë¤¹¤ë¡£
disable all
enable all
¤¹¤Ù¤Æ¤Î¥¤¥Ù¥ó¥È¤ò͸ú/̵¸ú¤Ë¤¹¤ë¡£
5.5.6 ¥í¡¼¥É¤µ¤ì¤¿¥ª¥Ö¥¸¥§¥¯¥È¡¦¥Õ¥¡¥¤¥ë̾¤Îɽ¼¨
listobj
¥³¥Þ¥ó¥É¤Ï¡¤dbx
¤Ë¤è¤Ã¤Æ¥í¡¼¥É¤µ¤ì¤¿¥ª¥Ö¥¸¥§¥¯¥È¡¦¥Õ¥¡¥¤¥ë¤Î̾Á°¤ò¥¢¥É¥ì¥¹¤ª¤è¤Ó¥µ¥¤¥º¤È¤È¤â¤Ëɽ¼¨¤·¤Þ¤¹¡£
¤³¤ì¤é¤Î¥ª¥Ö¥¸¥§¥¯¥È¤Ë¤Ï¡¤¥á¥¤¥ó¡¦¥×¥í¥°¥é¥à¡¤¤ª¤è¤Ó¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ç»ÈÍѤµ¤ì¤ë¤¹¤Ù¤Æ¤Î¥·¥§¥¢¡¼¥É¡¦¥é¥¤¥Ö¥é¥ê¤¬´Þ¤Þ¤ì¤Þ¤¹¡£
listobj
¥³¥Þ¥ó¥É¤Ë¤Ï°ú¿ô¤ÏÉÔÍפǤ¹¡£
Îã
(dbx) listobj sam addr: 0x120000000 size: 0x2000 /usr/shlib/libc.so addr: 0x3ff80080000 size: 0xbc000 (dbx)
5.5.7 ¥³¥¢¡¦¥À¥ó¥×ÍѤΥ·¥§¥¢¡¼¥É¡¦¥é¥¤¥Ö¥é¥ê¤Î»ØÄê
¥³¥¢¡¦¥À¥ó¥×¤¬È¯À¸¤¹¤ë¤È¡¤¥×¥í¥°¥é¥à¤Î»ÈÍѤ¹¤ë¤¹¤Ù¤Æ¤Î¥·¥§¥¢¡¼¥É¡¦¥é¥¤¥Ö¥é¥ê¤Î°ÌÃÖ¤¬¥³¥¢¡¦¥Õ¥¡¥¤¥ë¤ËµÏ¿¤µ¤ì¤Æ¡¤dbx
¤«¤é¥é¥¤¥Ö¥é¥ê¤¬¸¡º÷¤Ç¤¤ë¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¡£
¥À¥ó¥×¤ÎȯÀ¸»þ¤Ë¼Â¹ÔÃæ¤À¤Ã¤¿¥Ð¡¼¥¸¥ç¥ó¤Î¥·¥§¥¢¡¼¥É¡¦¥é¥¤¥Ö¥é¥ê¤¬Ê̤ξì½ê¤Ë°Üư¤µ¤ì¤ë¤È¡¤dbx
¤Ï¤½¤ì¤ò¸¡º÷¤Ç¤¤Ê¤¯¤Ê¤ê¤Þ¤¹¡£
¼¡¤Î¤¤¤º¤ì¤«¤ÎÊýË¡¤ò»ÈÍѤ·¤Æ¡¤dbx
¤¬¥·¥§¥¢¡¼¥É¡¦¥é¥¤¥Ö¥é¥ê¤ò¸¡º÷¤¹¤ë¥Ç¥£¥ì¥¯¥È¥ê¡¦¥Ñ¥¹¤ò»ØÄê¤Ç¤¤Þ¤¹
(¾ÜºÙ¤Ë¤Ä¤¤¤Æ¤Ï¡¤
dbx
(1)
dbx
¥³¥Þ¥ó¥É¹Ô¤Ç¡¤-module_path
¥ª¥×¥·¥ç¥ó¤ò»È¤Ã¤Æ¥Ç¥£¥ì¥¯¥È¥ê¡¦¥Ñ¥¹¤ò»ØÄꤷ¤Þ¤¹¡£
¼¡¤ËÎã¤ò¼¨¤·¤Þ¤¹¡£
%
dbx a.out core -module_path /usr/project4/lib_dir
dbx
¤ò¸Æ¤Ó½Ð¤¹Á°¤Ë¡¤´Ä¶ÊÑ¿ô
DBX_MODULE_PATH
¤òÀßÄꤷ¤Þ¤¹¡£
¼¡¤ËÎã¤ò¼¨¤·¤Þ¤¹¡£
%
setenv DBX_MODULE_PATH /usr/project4/lib_dir
dbx
¥»¥Ã¥·¥ç¥óÃæ¤Ë¡¤¥·¥§¥¢¡¼¥É¡¦¥é¥¤¥Ö¥é¥ê¤òưŪ¤Ë¥í¡¼¥É¤¹¤ë¾ì¹ç¤Ï¡¤¤Þ¤º
$module_path
dbx
ÊÑ¿ô¤òÀßÄꤷ¤Æ¤«¤é¡¤addobj
¥³¥Þ¥ó¥É¤ò»ÈÍѤ·¤Æ¥é¥¤¥Ö¥é¥ê¤ò¥í¡¼¥É¤·¤Þ¤¹¡£
¼¡¤ËÎã¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£
(dbx)
set $module_path /usr/project4/lib_dir(dbx)
addobj libdef.so
¥â¥¸¥å¡¼¥ë¤¬Å¬Àڤʾì½ê¤«¤é¥í¡¼¥É¤µ¤ì¤¿¤³¤È¤ò³Îǧ¤¹¤ë¤Ë¤Ï¡¤¼¡¤Î¤¤¤º¤ì¤«¤ÎÊýË¡¤Ç¡¤verbose ¥â¥¸¥å¡¼¥ë¡¦¥í¡¼¥Éµ¡Ç½¤òÀßÄꤷ¤Þ¤¹¡£
-module_verbose
dbx
¥³¥Þ¥ó¥É¡¦¥ª¥×¥·¥ç¥ó¤ò»ØÄꤹ¤ë¡£
´Ä¶ÊÑ¿ô
DBX_MODULE_VERBOSE
¤òǤ°Õ¤ÎÀ°¿ôÃͤËÀßÄꤹ¤ë¡£
$module_verbose
dbx
ÊÑ¿ô¤ò¥¼¥í°Ê³°¤ÎÃͤËÀßÄꤹ¤ë¡£
5.5.8 dbx ¤«¤é¤Î¥µ¥Ö¥·¥§¥ë¤Îµ¯Æ°
dbx
¥×¥í¥ó¥×¥È¤Ç¥µ¥Ö¥·¥§¥ë¤òµ¯Æ°¤¹¤ë¤Ë¤Ï¡¤sh
¥³¥Þ¥ó¥É¤òÆþÎϤ·¤Þ¤¹¡£
¥µ¥Ö¥·¥§¥ë¤«¤é
dbx
¤ËÌá¤ë¤Ë¤Ï¡¤exit
¤òÆþÎϤ¹¤ë¤«¡¤¤Þ¤¿¤Ï Ctrl/D ¤ò²¡¤·¤Þ¤¹¡£
ñ°ì¤Î¥³¥Þ¥ó¥É¤ò¥µ¥Ö¥·¥§¥ë¤Ç¼Â¹Ô¤·¤Æ¤¹¤°¤Ë
dbx
¤ËÌá¤ë¤Ë¤Ï¡¤sh
¤Î¥³¥Þ¥ó¥É¤Î¸å¤Ë¥·¥§¥ë¡¦¥³¥Þ¥ó¥É¤ò³¤±¤ÆÆþÎϤ·¤Æ¤¯¤À¤µ¤¤¡£
Îã
(dbx) sh % date Tue Aug 9 17:25:15 EDT 1998 % exit
.
.
.
(dbx) sh date Tue Aug 9 17:29:34 EDT 1998 (dbx)
¤³¤ÎÀá¤Ç¤Ï¡¤¥½¡¼¥¹¡¦¥³¡¼¥É¤Î¥ê¥¹¥È¤ª¤è¤ÓÊÔ½¸¡¤¥Ç¥£¥ì¥¯¥È¥ê¤ÎÊѹ¹¡¤¥½¡¼¥¹¡¦¥Õ¥¡¥¤¥ë¤ÎÊѹ¹¡¤¥½¡¼¥¹¡¦¥³¡¼¥ÉÆâ¤Îʸ»úÎó¤Îõº÷¡¤½¤¾þ¤µ¤ì¤¿¥·¥ó¥Ü¥ë̾¤Îɽ¼¨¡¤·¿Àë¸À¤Îɽ¼¨¤Ê¤É¤ò¹Ô¤¦ÊýË¡¤Ë¤Ä¤¤¤ÆÀâÌÀ¤·¤Þ¤¹¡£
5.6.1 ¥½¡¼¥¹¡¦¥Õ¥¡¥¤¥ë¤Î¥Ç¥£¥ì¥¯¥È¥ê°ÌÃ֤λØÄê
¥Ç¥Ð¥Ã¥¬¤Î¼Â¹Ô (5.2.3 ¹à¤ò»²¾È) »þ¤Ë
-I
¥ª¥×¥·¥ç¥ó¤¬»ØÄꤵ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¡¤dbx
¤Ï¡¤¸½ºß¤Î¥Ç¥£¥ì¥¯¥È¥ê¤Þ¤¿¤Ï¥ª¥Ö¥¸¥§¥¯¥È¡¦¥Õ¥¡¥¤¥ë¤Î¥Ç¥£¥ì¥¯¥È¥ê¤Ç¥½¡¼¥¹¡¦¥Õ¥¡¥¤¥ë¤òõº÷¤·¤Þ¤¹¡£
use
¥³¥Þ¥ó¥É¤Ë¤Ï¼¡¤Îµ¡Ç½¤¬¤¢¤ê¤Þ¤¹¡£
¥Ç¥Ð¥Ã¥¬¤¬Ãµº÷¤¹¤ë¥Ç¥£¥ì¥¯¥È¥ê¤ÎÊѹ¹
¸½ºß»ÈÍÑÃæ¤Î¥Ç¥£¥ì¥¯¥È¥ê¤Î¥ê¥¹¥È
use
¥³¥Þ¥ó¥É¤Ï¡¤ÀäÂХѥ¹Ì¾¤ª¤è¤Ó
./
¤Ê¤É¤ÎÁêÂХѥ¹Ì¾¤òǧ¼±¤·¤Þ¤¹¡£
¤¿¤À¤·¡¤C ¥·¥§¥ë¤Î¥Á¥ë¥É (~) ¤Ïǧ¼±¤·¤Þ¤»¤ó¡£
use
¥³¥Þ¥ó¥É¤Î·Á¼°¤Ï¼¡¤Î¤È¤ª¤ê¤Ç¤¹¡£
use
¸½ºß¤Î¥Ç¥£¥ì¥¯¥È¥ê¤ò¥ê¥¹¥È¤¹¤ë¡£
use DIR1 ...
DIRN
¸½ºß¤Î¥Ç¥£¥ì¥¯¥È¥ê¡¦¥ê¥¹¥È¤ò¿·¤·¤¤¥Ç¥£¥ì¥¯¥È¥ê¤ÈÃÖ´¹¤¹¤ë¡£
Îã
(dbx) use . [1] (dbx) use /usr/local/lib (dbx) use /usr/local/lib [2] (dbx)
¸½ºß¤Î¥Ç¥£¥ì¥¯¥È¥ê [Îã¤ËÌá¤ë]
¿·¤·¤¤¥Ç¥£¥ì¥¯¥È¥ê [Îã¤ËÌá¤ë]
5.1.2 ¹à¤ÇÀâÌÀ¤¹¤ë¤è¤¦¤Ë¡¤¥Ç¥Ð¥Ã¥¬¤Ï¥¢¥¯¥Æ¥£¥Ö²½¥¹¥¿¥Ã¥¯¤Î¥ì¥Ù¥ë¤òÊݼ餷¤Þ¤¹¡£
ÆÃÄê¤Î¥×¥í¥·¡¼¥¸¥ã¤Î̾Á°¤Þ¤¿¤Ï¥¢¥¯¥Æ¥£¥Ö²½ÈÖ¹æ¤òõº÷¤¹¤ë¤Ë¤Ï¡¤where
¤¢¤ë¤¤¤Ï
tstack
¥³¥Þ¥ó¥É¤ò»ÈÍѤ·¤Æ¥¹¥¿¥Ã¥¯¡¦¥È¥ì¡¼¥¹¤ò¹Ô¤Ã¤Æ¤¯¤À¤µ¤¤¡£
¥¢¥¯¥Æ¥£¥Ö²½¥¹¥¿¥Ã¥¯Æâ¤Î°Üư¤Ï¡¤up
¡¤down
¤ª¤è¤Ó
func
¥³¥Þ¥ó¥É¤Ç¹Ô¤¦¤³¤È¤¬¤Ç¤¤Þ¤¹¡£
5.6.2.1 where ¥³¥Þ¥ó¥É¤ª¤è¤Ó tstack ¥³¥Þ¥ó¥É
where
¥³¥Þ¥ó¥É¤Ï¡¤¥¹¥¿¥Ã¥¯¡¦¥È¥ì¡¼¥¹¤òɽ¼¨¤·¤Þ¤¹¡£
¥¹¥¿¥Ã¥¯¡¦¥È¥ì¡¼¥¹¤Ë¤è¤Ã¤Æ¥Ç¥Ð¥Ã¥°¤·¤Æ¤¤¤ë¥×¥í¥°¥é¥à¤Î¸½ºß¤Î¥¢¥¯¥Æ¥£¥Ö²½¥ì¥Ù¥ë (¼Â¹ÔÃæ¤Î¥×¥í¥·¡¼¥¸¥ã) ¤òÃΤ뤳¤È¤¬¤Ç¤¤Þ¤¹¡£
tstack
¥³¥Þ¥ó¥É¤Ï¡¤¤¹¤Ù¤Æ¤Î¥¹¥ì¥Ã¥É¤Î¥¹¥¿¥Ã¥¯¡¦¥È¥ì¡¼¥¹¤òɽ¼¨¤·¤Þ¤¹¡£
¥¹¥ì¥Ã¥É¤Î¥Ç¥Ð¥Ã¥°¤Ë¤Ä¤¤¤Æ¤Ï5.12 Àá¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£
where
¥³¥Þ¥ó¥É¤ª¤è¤Ó
tstack
¥³¥Þ¥ó¥É¤Î·Á¼°¤Ï¡¤¼¡¤Î¤È¤ª¤ê¤Ç¤¹¡£
where [EXP]
tstack [EXP]
¥¹¥¿¥Ã¥¯¡¦¥È¥ì¡¼¥¹¤òɽ¼¨¤¹¤ë¡£
EXP
¤¬»ØÄꤵ¤ì¤Æ¤¤¤ë¾ì¹ç¡¤dbx
¤Ï¥¹¥¿¥Ã¥¯¤Î¾å°Ì
EXP
¥ì¥Ù¥ë¤Î¤ß¤òɽ¼¨¤·¤Þ¤¹¡£
EXP
¤¬»ØÄꤵ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¤Ï¡¤¥¹¥¿¥Ã¥¯Á´ÂΤ¬É½¼¨¤µ¤ì¤Þ¤¹¡£
¥µ¥ó¥×¥ë¡¦¥×¥í¥°¥é¥à
sam.c
¤Ç¥Ö¥ì¡¼¥¯¥Ý¥¤¥ó¥È¤¬
prnt
¤ËÀßÄꤵ¤ì¤ë¤È¡¤¥×¥í¥°¥é¥à
sam.c
¤Ï¡¤¥×¥í¥·¡¼¥¸¥ã
prnt()
¤Ç¼Â¹Ô/Ää»ß¤·¤Þ¤¹¡£
where
¤òÆþÎϤ¹¤ë¤È¡¤¥¹¥¿¥Ã¥¯¡¦¥È¥ì¡¼¥¹¤Ï¼¡¤Î¤è¤¦¤Ê¾ðÊó¤òɽ¼¨¤·¤Þ¤¹¡£
(dbx) stop in prnt [1] stop in prnt (dbx) run
.
.
.
(dbx) where 1 > 0 prnt(pline = 0x11ffffcb8) ["sam.c":52, 0x120000c04] | | | | | | | | | | | [6] | | | | [5] | | | [4] | | [3] | [2] [1] (dbx)
¥¢¥¯¥Æ¥£¥Ö²½¥ì¥Ù¥ëÈÖ¹æ [Îã¤ËÌá¤ë]
¥×¥í¥·¡¼¥¸¥ã̾ [Îã¤ËÌá¤ë]
°ú¿ô
pline
¤Î¸½ºß¤ÎÃÍ [Îã¤ËÌá¤ë]
¥½¡¼¥¹¡¦¥Õ¥¡¥¤¥ë̾ [Îã¤ËÌá¤ë]
¹ÔÈÖ¹æ [Îã¤ËÌá¤ë]
¥×¥í¥°¥é¥à¡¦¥«¥¦¥ó¥¿ [Îã¤ËÌá¤ë]
up
¤ª¤è¤Ó
down
¥³¥Þ¥ó¥É¤ò»ÈÍѤ¹¤ë¤È¡¤¥¹¥¿¥Ã¥¯Æâ¤Î¥¢¥¯¥Æ¥£¥Ö²½¥ì¥Ù¥ë¤ò¾å²¼¤Ë°Üư¤Ç¤¤Þ¤¹¡£
¤³¤ì¤é¤Î¥³¥Þ¥ó¥É¤Ï¡¤¤¢¤ë¥ì¥Ù¥ë¤«¤éÊ̤Υì¥Ù¥ë¤Ø¤Î¸Æ¤Ó½Ð¤·¤òÄÉÀפ¹¤ë¾ì¹ç¤ËÊØÍø¤Ç¤¹¡£
func
¥³¥Þ¥ó¥É¤Ï¡¤¸½ºß¤Î¹Ô¡¤¸½ºß¤Î¥Õ¥¡¥¤¥ë¡¤¤ª¤è¤Ó¸½ºß¤Î¥×¥í¥·¡¼¥¸¥ã¤Ê¤É¡¤¥¢¥¯¥»¥¹¤Ç¤¤ëÊÑ¿ô¤Î͸úÈϰϤòÊѹ¹¤·¤Þ¤¹¡£
func
¥³¥Þ¥ó¥É¤Ï¡¤¥×¥í¥°¥é¥à¤¬¼Â¹Ô¤µ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¤Î¥½¡¼¥¹¡¦¥³¡¼¥É¤Î¸¡ºº¤Ë¤â»ÈÍѤ¹¤ë¤³¤È¤¬¤Ç¤¤Þ¤¹¡£
up
¡¤down
¤ª¤è¤Ó
func
¥³¥Þ¥ó¥É¤Î·Á¼°¤Ï¼¡¤Î¤È¤ª¤ê¤Ç¤¹¡£
up [EXP]
¥¹¥¿¥Ã¥¯¤Î¥¢¥¯¥Æ¥£¥Ö²½¥ì¥Ù¥ë¤ò¡¤»ØÄꤵ¤ì¤¿¿ô¤À¤±¾å¤²¤ë¡£ ¾Êά»þ¤ÎÃÍ¤Ï 1 ¥ì¥Ù¥ë¡£
down [EXP]
¥¹¥¿¥Ã¥¯Æâ¤Î¥¢¥¯¥Æ¥£¥Ö²½¥ì¥Ù¥ë¤ò¡¤»ØÄꤵ¤ì¤¿¿ô¤À¤±²¼¤²¤ë¡£ ¾Êά»þ¤ÎÃÍ¤Ï 1 ¥ì¥Ù¥ë¡£
func
¸½ºß¤Î¥¢¥¯¥Æ¥£¥Ö²½¥ì¥Ù¥ë¤òɽ¼¨¤¹¤ë¡£
func PROCEDURE
PROCEDURE
¤Ë»ØÄꤵ¤ì¤¿¥¢¥¯¥Æ¥£¥Ö²½¥ì¥Ù¥ë¤Ë°Üư¤¹¤ë¡£
func EXP
¼°¤Ë¤è¤Ã¤Æ»ØÄꤵ¤ì¤¿¥¢¥¯¥Æ¥£¥Ö²½¥ì¥Ù¥ë¤Ë°Üư¤¹¤ë¡£
¤³¤ì¤é¤Î¥³¥Þ¥ó¥É¤ÎÎã¤ò¼¡¤Ë¼¨¤·¤Þ¤¹¡£
(dbx) where > 0 prnt(pline = 0x11ffffcb8) ["sam.c":52, 0x120000c04] 1 main(argc = 2, argv = 0x11ffffe08) ["sam.c":45, 0x120000bac] (dbx) up main: 45 prnt(&line1); [1] (dbx) where 0 prnt(pline = 0x11ffffcb8) ["sam.c":52, 0x120000c04] > 1 main(argc = 2, argv = 0x11ffffe08) ["sam.c":45, 0x120000bac] (dbx) down prnt: 52 fprintf(stdout,"%3d. (%3d) %s", [2] (dbx) where > 0 prnt(pline = 0x11ffffcb8) ["sam.c":52, 0x120000c04] 1 main(argc = 2, argv = 0x11ffffe08) ["sam.c":45, 0x120000bac] (dbx) func 1 main 47 prnt(&line1) [3] (dbx)
1 ¥ì¥Ù¥ë¾å¤²¤ë¡£ [Îã¤ËÌá¤ë]
1 ¥ì¥Ù¥ë²¼¤²¤ë¡£ [Îã¤ËÌá¤ë]
main
¤Ë°Üư¤¹¤ë¡£
[Îã¤ËÌá¤ë]
file
¥³¥Þ¥ó¥É¤Ï¡¤¸½ºß¤Î¥½¡¼¥¹¡¦¥Õ¥¡¥¤¥ë¤Îɽ¼¨¡¤¤¢¤ë¤¤¤Ï¸½ºß¤Î¥½¡¼¥¹¡¦¥Õ¥¡¥¤¥ë¤ÎÊѹ¹¤ò¹Ô¤¤¤Þ¤¹¡£
Ãí°Õ
¥Ö¥ì¡¼¥¯¥Ý¥¤¥ó¥È¤Þ¤¿¤Ï¥È¥ì¡¼¥¹¤ò¤¢¤ë¹ÔÈÖ¹æ¤ËÀßÄꤹ¤ëÁ°¤Ë¡¤
func
¥³¥Þ¥ó¥É¤ò»ÈÍѤ·¤ÆÀµ¤·¤¤¥×¥í¥·¡¼¥¸¥ã¤ò¼èÆÀ¤·¤Æ¤¯¤À¤µ¤¤¡£file
¥³¥Þ¥ó¥É¤Ç¤Ï¡¤¥Ç¥Ð¥Ã¥¬¤¬¥Ö¥ì¡¼¥¯¥Ý¥¤¥ó¥È¤òÀßÄꤹ¤ëºÝ¤ËɬÍפʾܤ·¤¤¾ðÊó¤Ë¥¢¥¯¥»¥¹¤Ç¤¤Þ¤»¤ó¡£
file
¥³¥Þ¥ó¥É¤Î·Á¼°¤Ï¼¡¤Î¤È¤ª¤ê¤Ç¤¹¡£
file
¸½ºß»ÈÍÑÃæ¤Î¥Õ¥¡¥¤¥ë̾¤òɽ¼¨¤¹¤ë¡£
file FILE
¸½ºß¤Î¥Õ¥¡¥¤¥ë¤ò»ØÄꤵ¤ì¤¿¥Õ¥¡¥¤¥ë¤ËÊѹ¹¤¹¤ë¡£
Îã
(dbx) file sam.c [1] (dbx) file data.c (dbx) file data.c [2] (dbx)
¸½ºß¤Î¥Õ¥¡¥¤¥ë [Îã¤ËÌá¤ë]
¿·¤·¤¤¥Õ¥¡¥¤¥ë [Îã¤ËÌá¤ë]
list
¥³¥Þ¥ó¥É¤Ï¡¤¥½¡¼¥¹¡¦¥³¡¼¥É¤Î¹Ô¤òɽ¼¨¤·¤Þ¤¹¡£
dbx
ÊÑ¿ô
$listwindow
¤Ï¡¤dbx
¤¬¾Êά»þ¤ÎÀßÄê¤Ç¥ê¥¹¥È¤¹¤ë¹ÔÈÖ¹æ¤òÄêµÁ¤·¤Þ¤¹¡£
list
¥³¥Þ¥ó¥É¤Ï¡¤ÆÃ¤Ë»ØÄꤷ¤Ê¤¤¸Â¤ê¸½ºß¤Î¥Õ¥¡¥¤¥ë¡¤¸½ºß¤Î¥×¥í¥·¡¼¥¸¥ã¡¤¤ª¤è¤Ó¸½ºß¤Î¹Ô¤ò»ÈÍѤ·¤Þ¤¹¡£
¼¡¤Ë
list
¥³¥Þ¥ó¥É¤Î·Á¼°¤ò¼¨¤·¤Þ¤¹¡£
list
¸½ºß¤Î¹Ô¤«¤é
$listwindow
¹Ô¤ò¥ê¥¹¥È¤¹¤ë¡£
list EXP
¸½ºß¤Î¹Ô¤«¤é
EXP
¹Ô¤ò¥ê¥¹¥È¤¹¤ë¡£
list EXP1,EXP2
EXP1
¤«¤é
EXP2
¤Þ¤Ç¤Î¹Ô¤ò¥ê¥¹¥È¤¹¤ë¡£
list EXP:INT
»ØÄꤵ¤ì¤¿¹Ô (EXP
) ¤«¤é»ØÄꤵ¤ì¤¿¹Ô (INT
) ¤À¤±¤ò¥ê¥¹¥È¤¹¤ë¡£
($listwindow
¤ò̵¸ú¤Ë¤¹¤ë¡£
)
list PROCEDURE
$listwindow
¤Î¹Ô¿ôʬ¤À¤±¡¤»ØÄꤵ¤ì¤¿¥×¥í¥·¡¼¥¸¥ã¤ò¥ê¥¹¥È¤¹¤ë¡£
¼¡¤ÎÎã¤Ç¤Ï¡¤49 ¹ÔÌܤ«¤é 2 ¹Ô¥ê¥¹¥È¤·¤Æ¤¤¤Þ¤¹¡£
Îã
(dbx) list 49:2 49 void prnt(pline) 50 LINETYPE *pline;
list
¥³¥Þ¥ó¥É¤ÎÄêµÁºÑ¤ßÊÌ̾
w
¤ò»ÈÍѤ·¤¿¾ì¹ç¤Ï¡¤¼¡¤Î¤è¤¦¤Ë½ÐÎϤµ¤ì¤Þ¤¹¡£
(dbx) w 45 prnt(&line1); 46 } 47 } 48 49 void prnt(pline) > 50 LINETYPE *pline; 51 { * 52 fprintf(stdout,"%3d. (%3d) %s",pline->linenumber, 53 pline->length, pline->string); 54 fflush(stdout);
±¦¸þ¤¤Î»³¥«¥Ã¥³ (>
) ¤Ï¸½ºß¤Î¹Ô¤ò¡¤¥¢¥¹¥¿¥ê¥¹¥¯ (*) ¤Ï¤³¤Î¥¢¥¯¥Æ¥£¥Ö²½¥ì¥Ù¥ë¤Î¥×¥í¥°¥é¥à¡¦¥«¥¦¥ó¥¿ (pc) ¤Î°ÌÃÖ¤ò¼¨¤·¤Þ¤¹¡£
5.6.5 ¥½¡¼¥¹¡¦¥Õ¥¡¥¤¥ë¡¦¥Æ¥¥¹¥È¤Îõº÷
/
¥³¥Þ¥ó¥É¤ª¤è¤Ó
?
¥³¥Þ¥ó¥É¤Ï¡¤¥½¡¼¥¹¡¦¥³¡¼¥ÉÆâ¤ÇÀµµ¬É½¸½¤òõº÷¤·¤Þ¤¹¡£
¥¹¥é¥Ã¥·¥å (/) ¤Ï½çÊý¸þ¤Ëõº÷¤·¡¤µ¿ÌäÉä (?
) ¤Ï¸½ºß¤Î¹Ô¤«¤éµÕÊý¸þ¤Ëõº÷¤·¤Þ¤¹¡£
¤¤¤º¤ì¤Î¥³¥Þ¥ó¥É¤â¡¤É¬Íפ˱þ¤¸¤Æ¥Õ¥¡¥¤¥ë¤Î½ª¤ï¤ê¤ÎÉôʬ¤Ç¥é¥Ã¥×¡¦¥¢¥é¥¦¥ó¥É¤ò¹Ô¤¤¤Þ¤¹¡£
¥é¥Ã¥×¡¦¥¢¥é¥¦¥ó¥É¤Ç¤Ï¡¤³«»Ï¥Ý¥¤¥ó¥È¤«¤éºÆ¤Ó³«»Ï¥Ý¥¤¥ó¥È¤ËÌá¤ë¤Þ¤Ç¡¤¥Õ¥¡¥¤¥ëÁ´ÂΤÎõº÷¤ò¹Ô¤¤¤Þ¤¹¡£
dbx
ÊÑ¿ô
$casesense
¤òÈó¥¼¥íÃͤËÀßÄꤷ¤¿¾ì¹ç¤Ï¡¤dbx
¤ÏÂçʸ»ú¤È¾®Ê¸»ú¤ò¶èÊ̤·¤Þ¤¹¡£
¼¡¤Îɽ¤Ë
/
¤ª¤è¤Ó
?
¥³¥Þ¥ó¥É¤Î·Á¼°¤ò¼¨¤·¤Þ¤¹¡£
/[REGEXP]
»ØÄꤵ¤ì¤¿Àµµ¬É½¸½¤¬¤¢¤ë¤«¤É¤¦¤«¡¤¥³¡¼¥ÉÆâ¤ò½çÊý¸þ¤Ëõº÷¤¹¤ë¡£ ¼°¤¬»ØÄꤵ¤ì¤Ê¤«¤Ã¤¿¾ì¹ç¤Ë¤Ï¡¤¸½ºß¤Î 1 ¤ÄÁ°¤Îõº÷¥³¥Þ¥ó¥É¤Ç»ØÄꤵ¤ì¤¿Àµµ¬É½¸½¤òõº÷¤¹¤ë¡£
?[REGEXP]
»ØÄꤵ¤ì¤¿Àµµ¬É½¸½¤¬¤¢¤ë¤«¤É¤¦¤«¡¤¥³¡¼¥ÉÆâ¤òµÕÊý¸þ¤Ëõº÷¤¹¤ë¡£
Îã
(dbx) /lines no match (dbx) /line1 16 LINETYPE line1; (dbx) / 39 while(fgets(line1.string, sizeof(line1.string), fd) != NULL){ (dbx)
5.6.6 dbx Æâ¤«¤é¤Î¥½¡¼¥¹¡¦¥Õ¥¡¥¤¥ë¤ÎÊÔ½¸
edit
¥³¥Þ¥ó¥É¤ò»ÈÍѤ¹¤ë¤È¡¤dbx
Æâ¤«¤é¥½¡¼¥¹¡¦¥³¡¼¥É¤òÊѹ¹¤¹¤ë¤³¤È¤¬¤Ç¤¤Þ¤¹¡£
Êѹ¹ÆâÍÆ¤ò͸ú¤Ë¤¹¤ë¤Ë¤Ï¡¤dbx
¤ò½ªÎ»¤·¤Æ¥×¥í¥°¥é¥à¤òºÆ¥³¥ó¥Ñ¥¤¥ë¤·¡¤dbx
¤òºÆµ¯Æ°¤·¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó¡£
¼¡¤Ë
edit
¥³¥Þ¥ó¥É¤Î·Á¼°¤ò¼¨¤·¤Þ¤¹¡£
edit
¸½ºß¤Î¥Õ¥¡¥¤¥ë¤Ç¥¨¥Ç¥£¥¿¤ò¸Æ¤Ó½Ð¤¹¡£
edit FILE
»ØÄꤵ¤ì¤¿¥Õ¥¡¥¤¥ë¤Ç¥¨¥Ç¥£¥¿¤ò¸Æ¤Ó½Ð¤¹¡£
edit
¥³¥Þ¥ó¥É¤Ï¡¤´Ä¶ÊÑ¿ô
EDITOR
¤Ë¤è¤Ã¤Æ»ØÄꤵ¤ì¤ë¥¨¥Ç¥£¥¿¤ò¥í¡¼¥É¤·¤Þ¤¹¡£
EDITOR
¤¬ÀßÄꤵ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¤Ï¡¤vi
¥¨¥Ç¥£¥¿¤¬»ÈÍѤµ¤ì¤Þ¤¹¡£
dbx
¤ËÌá¤ë¤Ë¤Ï¡¤¥¨¥Ç¥£¥¿¤ò½ªÎ»¤·¤Æ¤¯¤À¤µ¤¤¡£
5.6.7 Ʊ¤¸Ì¾Á°¤ÎÊÑ¿ô¤Î¼±ÊÌ
which
¥³¥Þ¥ó¥É¤ª¤è¤Ó
whereis
¥³¥Þ¥ó¥É¤Ï¡¤¥×¥í¥°¥é¥àÊÑ¿ô¤òɽ¼¨¤·¤Þ¤¹¡£
¤³¤ì¤é¤Î¥³¥Þ¥ó¥É¤Ï¡¤°Û¤Ê¤ë͸úÈϰϤÇÊ£¿ô¤ÎƱ¤¸Ì¾Á°¤ÎÊÑ¿ô¤ò´Þ¤à¥×¥í¥°¥é¥à¤Î¥Ç¥Ð¥Ã¥°¤Ë͸ú¤Ç¤¹¡£
¤³¤Î 2 ¤Ä¤Î¥³¥Þ¥ó¥É¤Ï¡¤5.3.1 ¹à¤ÇÀâÌÀ¤·¤¿µ¬Â§¤Ë½¾¤¤¤Þ¤¹¡£
¼¡¤Ë
which
¥³¥Þ¥ó¥É¤ª¤è¤Ó
whereis
¥³¥Þ¥ó¥É¤Î·Á¼°¤ò¼¨¤·¤Þ¤¹¡£
which VAR
ÊÑ¿ô¤Î¾Êά»þ¤Î¥Ð¡¼¥¸¥ç¥ó¤òɽ¼¨¤¹¤ë¡£
whereis VAR
»ØÄꤵ¤ì¤¿ÊÑ¿ô¤Î¤¹¤Ù¤Æ¤Î¥Ð¡¼¥¸¥ç¥ó¤òɽ¼¨¤¹¤ë¡£
¼¡¤ÎÎã¤Ç¤Ï¡¤¾Êά»þ¤Î
i
ÊÑ¿ô¤ÎÀßÄê¤òÄ´¤Ù¡¤¼¡¤Ë
i
ÊÑ¿ô¤¬¥×¥í¥°¥é¥àÆâ¤Ç 1 ¤Ä¤·¤«ÄêµÁ¤µ¤ì¤Æ¤¤¤Ê¤¤¤³¤È¤ò³Îǧ¤·¤Æ¤¤¤Þ¤¹¡£
(dbx) which i sam.main.i (dbx) whereis i sam.main.i
5.6.8 ÊÑ¿ô¤ª¤è¤Ó¥×¥í¥·¡¼¥¸¥ã¤Î¥¿¥¤¥×¤Î³Îǧ
whatis
¥³¥Þ¥ó¥É¤Ï¡¤¥×¥í¥°¥é¥à¤ÎÊÑ¿ô¤ª¤è¤Ó¥×¥í¥·¡¼¥¸¥ã¤Î·¿Àë¸À¤ò¥ê¥¹¥È¤·¤Þ¤¹¡£
¼¡¤Ë
whatis
¥³¥Þ¥ó¥É¤Î·Á¼°¤ò¼¨¤·¤Þ¤¹¡£
whatis VAR
»ØÄꤵ¤ì¤¿ÊÑ¿ô¤Þ¤¿¤Ï¥×¥í¥·¡¼¥¸¥ã¤Î·¿Àë¸À¤òɽ¼¨¤¹¤ë¡£
Îã
(dbx) whatis main int main(argc,argv) int argc; unsigned char **argv; (dbx) whatis i int i; (dbx)
¤³¤ÎÀá¤Ç¤Ï¡¤¥×¥í¥°¥é¥à¤ò¼Â¹Ô¤¹¤ë¤¿¤á¤Ë»ÈÍѤ¹¤ë
dbx
¥³¥Þ¥ó¥É¤Ë¤Ä¤¤¤ÆÀâÌÀ¤·¤Þ¤¹¡£
¤³¤ì¤é¤Î¥³¥Þ¥ó¥É¤Ç¤Ï¡¤¥×¥í¥°¥é¥à¤Î¼Â¹Ô¡¤¥½¡¼¥¹¡¦¥³¡¼¥É¤Î¹Ôñ°Ì¤Î¼Â¹Ô¡¤¥×¥í¥·¡¼¥¸¥ã¸Æ¤Ó½Ð¤·¤«¤é¤ÎÌá¤ê¡¤»ØÄê¹Ô¤«¤é¤Î³«»Ï¡¤¥Ö¥ì¡¼¥¯¥Ý¥¤¥ó¥È¤ÇÄä»ß¤·¤¿¸å¤ÎºÆ³«¡¤¥×¥í¥°¥é¥àÊÑ¿ô¤Ø¤ÎÃͤγä¤êÅö¤Æ¡¤¼Â¹Ô²Äǽ¤Ê¥Ç¥£¥¹¥¯¡¦¥Õ¥¡¥¤¥ë¤Î¥Ñ¥Ã¥Á¡¤ÆÃÄê¥ë¡¼¥Á¥ó¤Î¼Â¹Ô¡¤´Ä¶ÊÑ¿ô¤ÎÀßÄꡤ¤ª¤è¤Ó¥·¥§¥¢¡¼¥É¡¦¥é¥¤¥Ö¥é¥ê¤Î¥í¡¼¥É¤Ê¤É¤ò¼Â¹Ô¤¹¤ë¤³¤È¤¬¤Ç¤¤Þ¤¹¡£
5.7.1 ¥×¥í¥°¥é¥à¤Î¼Â¹Ô¤ª¤è¤ÓºÆ¼Â¹Ô
run
¤ª¤è¤Ó
rerun
¥³¥Þ¥ó¥É¤Ï¡¤¥×¥í¥°¥é¥à¤Î¼Â¹Ô¤ò³«»Ï¤·¤Þ¤¹¡£
¤¤¤º¤ì¤Î¥³¥Þ¥ó¥É¤Ë¤â°ú¿ô¤ò»ØÄꤷ¡¤¤½¤ì¤ò¥×¥í¥°¥é¥à¤ËÅϤ¹¤³¤È¤¬¤Ç¤¤Þ¤¹¡£
run
¥³¥Þ¥ó¥É¤Ë°ú¿ô¤¬»ØÄꤵ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¤Ï¡¤dbx
¤Ï°ú¿ô¤Ê¤·¤Ç¥×¥í¥°¥é¥à¤ò¼Â¹Ô¤·¤Þ¤¹¡£
rerun
¥³¥Þ¥ó¥É¤Ë°ú¿ô¤¬»ØÄꤵ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¤Ï¡¤Á°²ó¤Î
run
¤¢¤ë¤¤¤Ï
rerun
¥³¥Þ¥ó¥É¼Â¹Ô»þ¤Î°ú¿ô¤¬»ÈÍѤµ¤ì¤Þ¤¹¡£
rerun
¥³¥Þ¥ó¥É¤ò¼Â¹Ô¤¹¤ëÁ°¤Ë¡¤args
¥³¥Þ¥ó¥É¤ò»ÈÍѤ·¤ÆÁ°¤â¤Ã¤Æ°ú¿ô¤ò»ØÄꤷ¤Æ¤ª¤¯¤³¤È¤â¤Ç¤¤Þ¤¹¡£
args
¥³¥Þ¥ó¥É¤Ç»ØÄꤵ¤ì¤¿°ú¿ô¤Ï¡¤¼¡¤Î
run
¥³¥Þ¥ó¥É¤Ç¤Ï̵»ë¤µ¤ì¤Þ¤¹¡£
¤³¤ì¤é¤Î¥³¥Þ¥ó¥É¤Ï¡¤C ¥·¥§¥ë¤Î¥ê¥À¥¤¥ì¥¯¥·¥ç¥ó¤ÈƱÍͤÎÊýË¡¤Ç¡¤¥×¥í¥°¥é¥àÆþ½ÐÎϤò¥ê¥À¥¤¥ì¥¯¥È¤¹¤ë¤³¤È¤¬¤Ç¤¤Þ¤¹¡£
¥ª¥×¥·¥ç¥ó¤Î¥Ñ¥é¥á¡¼¥¿
<FILE1
¤Ï¡¤ÆþÎϤò»ØÄꤵ¤ì¤¿¥Õ¥¡¥¤¥ë¤«¤é¼Â¹Ô¥×¥í¥°¥é¥à¤Ë¥ê¥À¥¤¥ì¥¯¥È¤¹¤ë¡£
¥ª¥×¥·¥ç¥ó¤Î¥Ñ¥é¥á¡¼¥¿
>FILE2
¤Ï¡¤½ÐÎϤò¼Â¹Ô¥×¥í¥°¥é¥à¤«¤é»ØÄꤵ¤ì¤¿¥Õ¥¡¥¤¥ë¤Ë¥ê¥À¥¤¥ì¥¯¥È¤¹¤ë¡£
¥ª¥×¥·¥ç¥ó¤Î¥Ñ¥é¥á¡¼¥¿
>&FILE2
¤Ï¡¤stderr
¤ª¤è¤Ó
stdout
¤ò»ØÄꤵ¤ì¤¿¥Õ¥¡¥¤¥ë¤Ë¥ê¥À¥¤¥ì¥¯¥È¤¹¤ë¡£
Ãí°Õ
¤³¤Î½ÐÎÏÆâÍÆ¤Ï¡¤
record output
¥³¥Þ¥ó¥É¤ÇÊݸ¤·¤¿½ÐÎÏÆâÍÆ¤È¤Ï°Û¤Ê¤ê¤Þ¤¹¡£record output
¥³¥Þ¥ó¥É¤Ï¡¤¥×¥í¥°¥é¥à½ÐÎϤǤϤʤ¯¥Ç¥Ð¥Ã¥¬½ÐÎϤò¥Õ¥¡¥¤¥ë¤ËÊݸ¤·¤Þ¤¹¡£record output
¥³¥Þ¥ó¥É¤Î¾ÜºÙ¤Ë¤Ä¤¤¤Æ¤Ï¡¤5.9.4.2 ¹à¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£
¼¡¤Ë
run
¥³¥Þ¥ó¥É¡¤rerun
¥³¥Þ¥ó¥É¤ª¤è¤Ó
args
¥³¥Þ¥ó¥É¤Î·Á¼°¤ò¼¨¤·¤Þ¤¹¡£
run [ARG1 ...
ARGN] [<FILE1] [>FILE2]
run [ARG1 ...
ARGN] [<FILE1] [>&FILE2]
»ØÄꤵ¤ì¤¿°ú¿ô¤ª¤è¤Ó¥ê¥À¥¤¥ì¥¯¥·¥ç¥ó¤Ç¥×¥í¥°¥é¥à¤ò¼Â¹Ô¤¹¤ë¡£
args [ARG1 ...
ARGN] [<FILE1] [>FILE2]
args [ARG1 ...
ARGN] [<FILE1] [>&FILE2]
°Ê¹ß¤Î¥³¥Þ¥ó¥É¤Ç»ÈÍѤ¹¤ë¤¿¤á¤Ë¡¤»ØÄꤷ¤¿°ú¿ô¤ª¤è¤Ó¥ê¥À¥¤¥ì¥¯¥·¥ç¥ó¤òÀßÄꤹ¤ë¡£
ÀßÄꤷ¤¿Ãͤϡ¤run
¤ª¤è¤Ó
rerun
¥³¥Þ¥ó¥É¤Ç¿·¤¿¤ÊÃͤ¬»ØÄꤵ¤ì¤ë¤Þ¤Ç͸ú¡£
rerun [ARG1 ...
ARGN] [<FILE1] [>FILE2]
rerun [ARG1 ...
ARGN] [<FILE1] [>&FILE2]
Á°²ó¤Ë»ØÄꤷ¤¿°ú¿ô¤Þ¤¿¤Ï¥ê¥À¥¤¥ì¥¯¥·¥ç¥ó¤Ç¥×¥í¥°¥é¥à¤òºÆ¼Â¹Ô¤¹¤ë¡£
(dbx) run sam.c [1] 0. (19)#include <stdio.h> 1. (14) struct line { 2. (19) char string[256];
.
.
.
Program terminated normally (dbx) rerun [2] 0. (19)#include <stdio.h> 1. (14) struct line { 2. (19) char string[256];
.
.
.
Program terminated normally (dbx)
°ú¿ô¤Ï
sam.c
¤Ç¤¹¡£
[Îã¤ËÌá¤ë]
Á°²ó»ØÄꤷ¤¿°ú¿ô¤Ç¥×¥í¥°¥é¥à¤òºÆ¼Â¹Ô¤·¤Þ¤¹¡£ [Îã¤ËÌá¤ë]
¹âµé¸À¸ì¤ÇºîÀ®¤µ¤ì¤Æ¤¤¤ë¥×¥í¥°¥é¥à¤ËÂФ·¤Æ¤Ï¡¤step
¥³¥Þ¥ó¥É¤ª¤è¤Ó
next
¥³¥Þ¥ó¥É¤ò»ÈÍѤ¹¤ë¤³¤È¤Ë¤è¤Ã¤Æ¡¤»ØÄꤷ¤¿¹Ô¿ô¤Î¥½¡¼¥¹¡¦¥³¡¼¥É¤ò¼Â¹Ô¤¹¤ë¤³¤È¤¬¤Ç¤¤Þ¤¹¡£
¥¢¥»¥ó¥Ö¥ê¸À¸ì¤ÇºîÀ®¤µ¤ì¤Æ¤¤¤ë¥×¥í¥°¥é¥à¤ËÂФ·¤Æ¤Ï¡¤stepi
¥³¥Þ¥ó¥É¤ª¤è¤Ó
nexti
¥³¥Þ¥ó¥É¤ò»ÈÍѤ·¤Þ¤¹¡£
¤¿¤À¤·¤³¤Î¾ì¹ç¡¤EXP
¤Ë»ØÄꤹ¤ë¿ô¤Ï¥×¥í¥°¥é¥à¤Î¹Ô¿ô¤Ç¤Ï¤Ê¤¯µ¡³£¸ìÌ¿Îá¤Î¿ô¤Ë¤Ê¤ê¤Þ¤¹¡£
EXP
¤ò»ØÄꤷ¤Ê¤¤¾ì¹ç¤Ï¡¤dbx
¤Ï¥½¡¼¥¹¡¦¥³¡¼¥É¤ò 1 ¹Ô¤¢¤ë¤¤¤Ï 1 µ¡³£¸ìÌ¿Îá¤À¤±¼Â¹Ô¤·¤Þ¤¹¡£
EXP
¤ËÃͤò»ØÄꤹ¤ëºÝ¤Îµ¬Â§¤Ï¼¡¤Î¤È¤ª¤ê¤Ç¤¹¡£
dbx
¥Ç¥Ð¥Ã¥¬¤Ï¡¤¥³¥á¥ó¥È¹Ô¤Ë¤Ä¤¤¤Æ¤Ï
EXP
¤ò²ò¼á¤¹¤ëºÝ¤Ë̵»ë¤·¤Þ¤¹¡£
¥³¥á¥ó¥È¹Ô¤Ï
EXP
¤Ç»ØÄꤷ¤¿¿ô¤Ë´Þ¤Þ¤ì¤Þ¤»¤ó¡£
step
¤ª¤è¤Ó
stepi
¤ËÂФ·¤Æ»ØÄꤷ¤¿
EXP
¤Ï¡¤¸½ºß¤Î¥×¥í¥·¡¼¥¸¥ã¤ª¤è¤Ó¸Æ¤Ó½Ð¤µ¤ì¤ë¥×¥í¥·¡¼¥¸¥ã¤ËŬÍѤµ¤ì¤Þ¤¹¡£
EXP
¤Ç»ØÄꤷ¤¿¤À¤±¤Î¥½¡¼¥¹¡¦¥³¡¼¥É¤ò¸½ºß¤Î¥×¥í¥·¡¼¥¸¥ã¤ª¤è¤Ó¸Æ¤Ó½Ð¤µ¤ì¤¿¥×¥í¥·¡¼¥¸¥ã¤Ç¼Â¹Ô¤·¤¿¸å¡¤¥×¥í¥°¥é¥à¤ÏÄä»ß¤·¤Þ¤¹¡£
next
¤ª¤è¤Ó
nexti
¤ËÂФ·¤Æ»ØÄꤷ¤¿
EXP
¤Ï¡¤¸½ºß¤Î¥×¥í¥·¡¼¥¸¥ã¤Î¤ß¤ËŬÍѤµ¤ì¤Þ¤¹¡£
EXP
¤Ç»ØÄꤷ¤¿¤À¤±¤Î¥½¡¼¥¹¹Ô¤ò¸½ºß¤Î¥×¥í¥·¡¼¥¸¥ã¤Ç¼Â¹Ô¤·¤¿¸å¡¤¥×¥í¥°¥é¥à¤ÏÄä»ß¤·¤Þ¤¹¡£
¸Æ¤Ó½Ð¤µ¤ì¤¿¥×¥í¥·¡¼¥¸¥ã¤Ç¼Â¹Ô¤¹¤ë¥½¡¼¥¹¡¦¥³¡¼¥É¤Ï
EXP
¤Ç»ØÄꤷ¤¿¹Ô¿ô¤Ë¤Ï´Þ¤Þ¤ì¤Þ¤»¤ó¡£
¼¡¤Ë
step/stepi
¤ª¤è¤Ó
next/nexti
¥³¥Þ¥ó¥É¤Î·Á¼°¤ò¼¨¤·¤Þ¤¹¡£
step [EXP]
stepi [EXP]
»ØÄꤷ¤¿¿ô¤Î¥½¡¼¥¹¡¦¥³¡¼¥É¹Ô¤¢¤ë¤¤¤Ïµ¡³£¸ìÌ¿Îá¤ò¼Â¹Ô¤¹¤ë¡£
EXP
¤ÎÃͤϡ¤¸½ºß¤Î¥×¥í¥·¡¼¥¸¥ã¤ª¤è¤Ó¸Æ¤Ó½Ð¤µ¤ì¤ë¥×¥í¥·¡¼¥¸¥ã¤ÎξÊý¤ËŬÍѤµ¤ì¤ë¡£
¾Êά»þ¤ÎÃÍ¤Ï 1¡£
next [EXP]
nexti [EXP]
»ØÄꤷ¤¿¿ô¤Î¥½¡¼¥¹¡¦¥³¡¼¥É¹Ô¤¢¤ë¤¤¤Ïµ¡³£¸ìÌ¿Îá¤ò¼Â¹Ô¤¹¤ë¡£
EXP
¤ÎÃͤϡ¤¸½ºß¤Î¥×¥í¥·¡¼¥¸¥ã¤Î¤ß¤ËŬÍѤµ¤ì¤ë¡£
¾Êά»þ¤ÎÃÍ¤Ï 1¡£
Îã
(dbx) rerun [7] stopped at [prnt:52,0x120000c04] fprintf(stdout,"%3d.(%3d) %s", (dbx) step 2 0. ( 19) #include <stdio.h> [prnt:55 ,0x120000c48] } (dbx) step [main:40 ,0x120000b40] i=strlen(line1.string); (dbx)
$break_during_step
¤ª¤è¤Ó
$printwhilestep
ÊÑ¿ô¤ÎÃͤ¬¡¤step/stepi
¤ª¤è¤Ó
next/nexti
¥³¥Þ¥ó¥É¤Îưºî¤Ë±Æ¶Á¤òÍ¿¤¨¤Þ¤¹¡£
¾ÜºÙ¤Ë¤Ä¤¤¤Æ¤Ïɽ 5-8
¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£
5.7.3 return ¥³¥Þ¥ó¥É
return
¥³¥Þ¥ó¥É¤Ï¡¤¸Æ¤Ó½Ð¤µ¤ì¤¿¥×¥í¥·¡¼¥¸¥ãÆâ¤Ç»ÈÍѤµ¤ì¤Þ¤¹¡£
return
¥³¥Þ¥ó¥É¤Ï¡¤¥×¥í¥·¡¼¥¸¥ãÆâ¤Î»Ä¤ê¤ÎÌ¿Îá¤ò¼Â¹Ô¤·¡¤¸Æ¤Ó½Ð¤·¥×¥í¥·¡¼¥¸¥ã¤ØÌá¤ê¤Þ¤¹¡£
¼¡¤Ë
return
¥³¥Þ¥ó¥É¤Î·Á¼°¤ò¼¨¤·¤Þ¤¹¡£
return
¸½ºß¤Î¥×¥í¥·¡¼¥¸¥ã¤Î»Ä¤ê¤ÎÌ¿Îá¤ò¼Â¹Ô¤·¡¤¸Æ¤Ó½Ð¤·¥×¥í¥·¡¼¥¸¥ã¤Î¼¡¤Î¹Ô¤ËÌá¤Ã¤ÆÄä»ß¤¹¤ë¡£
return PROCEDURE
¸½ºß¤Î¥×¥í¥·¡¼¥¸¥ã¡¤¤ª¤è¤Ó¸½ºß¤Î¥×¥í¥·¡¼¥¸¥ã¤È
PROCEDURE
¤Ç»ØÄꤵ¤ì¤¿¥×¥í¥·¡¼¥¸¥ã¤Î´Ö¤Ë²ðºß¤¹¤ë¸Æ¤Ó½Ð¤·¥×¥í¥·¡¼¥¸¥ã¤Î»Ä¤ê¤ÎÌ¿Îá¤ò¼Â¹Ô¤·¤Æ¡¤»ØÄꤵ¤ì¤¿¥×¥í¥·¡¼¥¸¥ãÆâ¤Î¸Æ¤Ó½Ð¤·¥Ý¥¤¥ó¥È¤ÇÄä»ß¤¹¤ë¡£
Îã
(dbx) rerun [7] stopped at [prnt:52,0x120000c04] fprintf(stdout,"%3d.(%3d) %s", (dbx) return 0. (19) #include <stdio.h> stopped at [main:45 +0xc,0x120000bb0] prnt(&line1); (dbx)
5.7.4 ¥³¡¼¥ÉÆâ¤ÎÆÃÄê¤Î¾ì½ê¤Ø¤Î°Üư
goto
¥³¥Þ¥ó¥É¤Ï¡¤»ØÄꤵ¤ì¤¿¹Ô¤Ë°Üư¤·¤Æ¼Â¹Ô¤ò³¤±¤Þ¤¹¡£
¤³¤Î¥³¥Þ¥ó¥É¤Ï¡¤when
ʸ¤Ç¡¤ÌäÂê¤Î¤¢¤ë¤³¤È¤¬Ê¬¤«¤Ã¤Æ¤¤¤ë¹Ô¤òÈô¤Ó±Û¤¹¾ì¹ç¤Ê¤É¤ËÊØÍø¤Ç¤¹¡£
¼¡¤Ë
goto
¥³¥Þ¥ó¥É¤Î·Á¼°¤ò¼¨¤·¤Þ¤¹¡£
goto LINE
¼Â¹Ô¤ò³¹Ô¤¹¤ë¤È¤¡¤»ØÄꤵ¤ì¤¿¥½¡¼¥¹¹Ô¤Ë°Üư¤¹¤ë¡£
Îã
(dbx) when at 40 {goto 43} [8] start sam.c:43 at "sam.c":40 (dbx)
5.7.5 ¥Ö¥ì¡¼¥¯¥Ý¥¤¥ó¥È¸å¤Î¥×¥í¥°¥é¥à¼Â¹Ô¤ÎºÆ³«
¹âµé¸À¸ì¤ÇºîÀ®¤µ¤ì¤Æ¤¤¤ë¥×¥í¥°¥é¥à¤ò¥Ç¥Ð¥Ã¥°¤·¤Æ¤¤¤ë¾ì¹ç¡¤¥Ö¥ì¡¼¥¯¥Ý¥¤¥ó¥È¤Î¸å¤Ë¥×¥í¥°¥é¥à¤Î¼Â¹Ô¤òºÆ³«¤¹¤ë¤Ë¤Ï
cont
¥³¥Þ¥ó¥É¤ò»ÈÍѤ·¤Þ¤¹¡£
¥¢¥»¥ó¥Ö¥ê¸À¸ì¤ÇºîÀ®¤µ¤ì¤Æ¤¤¤ë¥×¥í¥°¥é¥à¤ò¥Ç¥Ð¥Ã¥°¤·¤Æ¤¤¤ë¾ì¹ç¤Ï¡¤conti
¥³¥Þ¥ó¥É¤ò»ÈÍѤ·¤Þ¤¹¡£
¼¡¤Ë
cont
¤ª¤è¤Ó
conti
¥³¥Þ¥ó¥É¤Î·Á¼°¤ò¼¨¤·¤Þ¤¹¡£
cont
conti
¸½ºß¤Î¥½¡¼¥¹¡¦¥³¡¼¥É¹Ô¤¢¤ë¤¤¤Ïµ¡³£¸ì¥³¡¼¥É¡¦¥¢¥É¥ì¥¹¤«¤é³¹Ô¤¹¤ë¡£
cont to LINE
conti to ADDRESS
»ØÄꤵ¤ì¤¿¥½¡¼¥¹¹Ô¤¢¤ë¤¤¤Ïµ¡³£¸ì¥³¡¼¥É¡¦¥¢¥É¥ì¥¹¤Þ¤Ç³¹Ô¤¹¤ë¡£
cont in PROCEDURE
conti in PROCEDURE
»ØÄꤵ¤ì¤¿¥×¥í¥·¡¼¥¸¥ã¤Þ¤Ç³¹Ô¤¹¤ë¡£
cont SIGNAL
conti SIGNAL
»ØÄꤵ¤ì¤¿¥·¥°¥Ê¥ë¤ò¼õ¿®¤·¤¿¸å¡¤¸½ºß¤Î¹Ô¤¢¤ë¤¤¤Ïµ¡³£¸ìÌ¿Îᤫ¤é³¹Ô¤¹¤ë¡£
cont SIGNAL to LINE
conti SIGNAL to ADDRESS
»ØÄꤵ¤ì¤¿¥·¥°¥Ê¥ë¤ò¼õ¿®¤·¤¿¸å¡¤»ØÄꤵ¤ì¤¿¹Ô¤¢¤ë¤¤¤Ï¥¢¥É¥ì¥¹¤ËÅþ㤹¤ë¤Þ¤Ç³¹Ô¤¹¤ë¡£
cont SIGNAL in PROCEDURE
conti SIGNAL in PROCEDURE
»ØÄꤵ¤ì¤¿¥×¥í¥·¡¼¥¸¥ã¤ËÅþ㤹¤ë¤Þ¤Ç³¹Ô¤·¡¤¥·¥°¥Ê¥ë¤òÁ÷¿®¤¹¤ë¡£
C ¥×¥í¥°¥é¥à¤Ç¤Î
cont
¥³¥Þ¥ó¥É¤Î»ÈÍÑÎã¤ò¼¡¤Ë¼¨¤·¤Þ¤¹¡£
(dbx) stop in prnt [9] stop in prnt (dbx) rerun [9] stopped at [prnt:52,0x120000c04] fprintf(stdout,"%3d.(%3d) %s", (dbx) cont 0. ( 19) #include <stdio.h> [9] stopped at [prnt:52,0x120000c04] fprintf(stdout,"%3d.(%3d) %s", (dbx)
¥¢¥»¥ó¥Ö¥ê¸À¸ì¥×¥í¥°¥é¥à¤Ç¤Î
conti
¥³¥Þ¥ó¥É¤Î»ÈÍÑÎã¤ò¼¡¤Ë¼¨¤·¤Þ¤¹¡£
(dbx) conti 0. ( 19) #include <stdio.h> [4] stopped at >*[prnt:52 ,0x120000c04] ldq r16,-32640(gp) (dbx)
assign
¥³¥Þ¥ó¥É¤Ï¡¤¥×¥í¥°¥é¥àÊÑ¿ô¤ÎÃͤòÊѹ¹¤·¤Þ¤¹¡£
¼¡¤Ë
assign
¥³¥Þ¥ó¥É¤Î·Á¼°¤ò¼¨¤·¤Þ¤¹¡£
assign VAR = EXP
assign EXP1 = EXP2
VAR
¤Ç»ØÄꤷ¤¿¥×¥í¥°¥é¥àÊÑ¿ô¤Ë¿·¤·¤¤Ãͤò³ä¤êÅö¤Æ¤ë¡£
¤Þ¤¿¤Ï¡¤EXP1
¤Ë»ØÄꤷ¤¿¥¢¥É¥ì¥¹¤Ë¿·¤·¤¤Ãͤò³ä¤êÅö¤Æ¤ë¡£
Îã
(dbx) print i 19 [1] (dbx) assign i = 10 10 [2] (dbx) assign *(int *)0x444 = 1 [3] 1 (dbx)
i
¤ÎÃÍ¡£
[Îã¤ËÌá¤ë]
i
¤Î¿·¤·¤¤ÃÍ¡£
[Îã¤ËÌá¤ë]
¥¢¥É¥ì¥¹¤¬À°¿ô¤È¤Ê¤ë¤è¤¦¤ËÀßÄꤷ¡¤ÃÍ 1 ¤ò³ä¤êÅö¤Æ¤ë¡£ [Îã¤ËÌá¤ë]
patch
¥³¥Þ¥ó¥É¤Ï¡¤¼Â¹Ô²Äǽ¤Ê¥Ç¥£¥¹¥¯¡¦¥Õ¥¡¥¤¥ë¤Ë¥Ñ¥Ã¥Á¤òÅö¤Æ¤Æ¡¤¸í¤Ã¤¿¥Ç¡¼¥¿¤Þ¤¿¤ÏÌ¿Îá¤òÄûÀµ¤·¤Þ¤¹¡£
¥Æ¥¥¹¥È¡¤½é´ü²½¤µ¤ì¤¿¥Ç¡¼¥¿¡¤¤Þ¤¿¤ÏÆÉ¤ß¼è¤êÀìÍѥǡ¼¥¿Îΰè¤Î¤ß¤Ë¥Ñ¥Ã¥Á¤òÅö¤Æ¤ë¤³¤È¤¬¤Ç¤¤Þ¤¹¡£
bss
¥»¥°¥á¥ó¥È¤Ï¡¤¥Ç¥£¥¹¥¯¡¦¥Õ¥¡¥¤¥ë¤Ë¸ºß¤·¤Ê¤¤¤¿¤á¥Ñ¥Ã¥Á¤òÅö¤Æ¤ë¤³¤È¤Ï¤Ç¤¤Þ¤»¤ó¡£
patch
¥³¥Þ¥ó¥É¤Ï¡¤¼Â¹ÔÃæ¤Î¥×¥í¥°¥é¥à¤ËÂФ·¤Æ¼Â¹Ô¤µ¤ì¤ë¤È¡¤°Û¾ï½ªÎ»¤·¤Þ¤¹¡£
¼¡¤Ë
patch
¥³¥Þ¥ó¥É¤Î·Á¼°¤ò¼¨¤·¤Þ¤¹¡£
patch VAR = EXP
patch EXP1 = EXP2
VAR
¤Ë»ØÄꤷ¤¿¥×¥í¥°¥é¥àÊÑ¿ô¤¢¤ë¤¤¤Ï
EXP1
¤Ë»ØÄꤷ¤¿¥¢¥É¥ì¥¹¤Ë¿·¤·¤¤Ãͤò³ä¤êÅö¤Æ¤ë¡£
¥Ñ¥Ã¥Á¤Ï¾Êά»þ¤Î¥Ç¥£¥¹¥¯¡¦¥Õ¥¡¥¤¥ë¤ËŬÍѤµ¤ì¤Þ¤¹¡£ ¾Êά»þ¤Î¥Ç¥£¥¹¥¯¡¦¥Õ¥¡¥¤¥ë°Ê³°¤Î¥Õ¥¡¥¤¥ë¤Ë¥Ñ¥Ã¥Á¤ò»ØÄꤹ¤ë¤¿¤á¤Ë¡¤½¤¾þÊÑ¿ô̾¤ò»ÈÍѤ¹¤ë¤³¤È¤â¤Ç¤¤Þ¤¹¡£ ¤³¤Î¤è¤¦¤Ë¥Ñ¥Ã¥Á¤òÅö¤Æ¤ë¤³¤È¤Ë¤è¤Ã¤Æ¡¤¥Ñ¥Ã¥Á¤òÅö¤Æ¤ë¥Õ¥¡¥¤¥ë¤Î¥á¥â¥êÆâ¥¤¥á¡¼¥¸¤Ë¤â¥Ñ¥Ã¥Á¤òÅö¤Æ¤ë¤³¤È¤¬¤Ç¤¤Þ¤¹¡£
Îã
(dbx) patch &main = 0 (dbx) patch var = 20 (dbx) patch &var = 20 (dbx) patch 0xnnnnn = 0xnnnnn
5.7.8 ÆÃÄê¤Î¥×¥í¥·¡¼¥¸¥ã¤Î¼Â¹Ô
¸½ºß¹Ô¤Î¥Ý¥¤¥ó¥¿¤ò¥×¥í¥·¡¼¥¸¥ã¤ÎÀèÆ¬¤ËÀßÄꤷ¡¤¥Ö¥ì¡¼¥¯¥Ý¥¤¥ó¥È¤ò¥×¥í¥·¡¼¥¸¥ã¤ÎºÇ¸å¤ËÃÖ¤¤¤Æ¡¤¥×¥í¥·¡¼¥¸¥ã¤ò¼Â¹Ô¤¹¤ë¤³¤È¤¬¤Ç¤¤Þ¤¹¡£
¤¿¤À¤·¡¤Ä̾ï¤Ï¡¤call
¤¢¤ë¤¤¤Ï
print
¥³¥Þ¥ó¥É¤ò»ÈÍѤ·¤Æ¥×¥í¥°¥é¥àÆâ¤Ç¥×¥í¥·¡¼¥¸¥ã¤ò¼Â¹Ô¤¹¤ë¤Û¤¦¤¬´Êñ¤Ç¤¹¡£
call
¤¢¤ë¤¤¤Ï
print
¥³¥Þ¥ó¥É¤Ï¡¤¥³¥Þ¥ó¥É¹Ô¤Ç»ØÄꤷ¤¿¥×¥í¥·¡¼¥¸¥ã¤ò¼Â¹Ô¤·¤Þ¤¹¡£
call
¤¢¤ë¤¤¤Ï
print
¥³¥Þ¥ó¥É¤Î°ú¿ô¤È¤·¤Æ¥Ñ¥é¥á¡¼¥¿¤ò»ØÄꤹ¤ë¤È¡¤¥Ñ¥é¥á¡¼¥¿¤ò¥ë¡¼¥Á¥ó¤ËÅϤ¹¤³¤È¤¬¤Ç¤¤Þ¤¹¡£
call
¤¢¤ë¤¤¤Ï
print
¥³¥Þ¥ó¥É¤Ï¡¤¥×¥í¥°¥é¥à¤Îή¤ì¤Ë¤Ï±Æ¶Á¤òÍ¿¤¨¤Þ¤»¤ó¡£
¥×¥í¥·¡¼¥¸¥ã¤ËÀ©¸æ¤¬Ìá¤ë¤È¡¤¥×¥í¥°¥é¥à¤Ï
call
¤¢¤ë¤¤¤Ï
print
¥³¥Þ¥ó¥É¤òÆþÎϤ·¤¿°ÌÃÖ¤ÇÄä»ß¤·¤Æ¤¤¤Þ¤¹¡£
print
¥³¥Þ¥ó¥É¤Ï¸Æ¤Ó½Ð¤·¤¿¥×¥í¥·¡¼¥¸¥ã¤«¤éÊÖ¤µ¤ì¤ëÃͤòɽ¼¨¤·¤Þ¤¹¤¬¡¤call
¥³¥Þ¥ó¥É¤Î¾ì¹ç¤Ïɽ¼¨¤·¤Þ¤»¤ó¡£
¼¡¤Ë
call
¥³¥Þ¥ó¥É¤ª¤è¤Ó
print
¥³¥Þ¥ó¥É¤Î·Á¼°¤ò¼¨¤·¤Þ¤¹¡£
call PROCEDURE([parameters
])
print PROCEDURE([parameters
])
»ØÄꤷ¤¿¥×¥í¥·¡¼¥¸¥ã¤Þ¤¿¤Ï´Ø¿ô¤ËÂбþ¤¹¤ë¥ª¥Ö¥¸¥§¥¯¥È¡¦¥³¡¼¥É¤ò¼Â¹Ô¤¹¤ë¡£ »ØÄꤷ¤¿¥Ñ¥é¥á¡¼¥¿¤Ï¡¤»ØÄê¥×¥í¥·¡¼¥¸¥ã¤Þ¤¿¤Ï´Ø¿ô¤ËÅϤµ¤ì¤ë¡£
(dbx) stop in prnt [1] [11] stop in prnt (dbx) call prnt(&line1) [2] [11] stopped at [prnt:52,0x120000c] fprintf(stdout,"%3d.(%3d) %s", (dbx) status [3] [11] stop in prnt [12] stop at "sam.c":40 [2] record output example2 (126 lines) (dbx) delete 11,12 [4] (dbx)
stop
¥³¥Þ¥ó¥É¤Ç
prnt()
´Ø¿ô¤Ë¥Ö¥ì¡¼¥¯¥Ý¥¤¥ó¥È¤òÀßÄꤷ¤Þ¤¹¡£
[Îã¤ËÌá¤ë]
call
¥³¥Þ¥ó¥É¤Ç
prnt()
¤ËÂбþ¤¹¤ë¥ª¥Ö¥¸¥§¥¯¥È¡¦¥³¡¼¥É¤ò¼Â¹Ô¤·¤Þ¤¹¡£
»²¾È¤Ë¤è¤ê¡¤line1
°ú¿ô¤Ïʸ»úÎó¤ò
prnt
¤ËÅϤ·¤Þ¤¹¡£
[Îã¤ËÌá¤ë]
status
¥³¥Þ¥ó¥É¤Ç¸½ºß͸ú¤Ê¥Ö¥ì¡¼¥¯¥Ý¥¤¥ó¥È¤òɽ¼¨¤·¤Þ¤¹¡£
[Îã¤ËÌá¤ë]
delete
¥³¥Þ¥ó¥É¤Ç 52 ¹Ô¤È 40 ¹Ô¤Î¥Ö¥ì¡¼¥¯¥Ý¥¤¥ó¥È¤òºï½ü¤·¤Þ¤¹¡£
[Îã¤ËÌá¤ë]
print
¥³¥Þ¥ó¥É¤Ç¤Ï¡¤½ÐÎϤ¹¤ë¼°¤Ë¥×¥í¥·¡¼¥¸¥ã¤ò»ÈÍѤ¹¤ë¤³¤È¤¬¤Ç¤¤Þ¤¹¡£
¼¡¤ËÎã¤ò¼¨¤·¤Þ¤¹¡£
(dbx) print sqrt(2.)+sqrt(3.)
´Ä¶ÊÑ¿ô¤òÀßÄꤹ¤ë¤Ë¤Ï¡¤setenv
¥³¥Þ¥ó¥É¤ò»ÈÍѤ·¤Þ¤¹¡£
¤³¤Î¥³¥Þ¥ó¥É¤ò»ÈÍѤ·¤Æ´û¸¤Î´Ä¶ÊÑ¿ô¤ÎÃͤòÀßÄꤷ¤¿¤ê¡¤¿·¤·¤¤´Ä¶ÊÑ¿ô¤òºîÀ®¤·¤¿¤ê¤¹¤ë¤³¤È¤¬¤Ç¤¤Þ¤¹¡£
´Ä¶ÊÑ¿ô¤Ï¡¤dbx
¤ª¤è¤Ó
dbx
¤ÎÀ©¸æ¤Î¤â¤È¤Ë¼Â¹Ô¤·¤Æ¤¤¤ë¥×¥í¥°¥é¥à¤Çɽ¼¨²Äǽ¤Ç¤¹¤¬¡¤dbx
´Ä¶¤ò½ªÎ»¤·¤¿¸å¤Ïɽ¼¨¤Ç¤¤Þ¤»¤ó¡£
¤¿¤À¤·¡¤dbx
Æâ¤Ç
sh
¥³¥Þ¥ó¥É¤ò»ÈÍѤ·¤Æ¥·¥§¥ë¤òµ¯Æ°¤·¤Æ¤¤¤ë¾ì¹ç¤Ë¤Ï¡¤¤½¤Î¥·¥§¥ë¤Ï
dbx
´Ä¶ÊÑ¿ô¤ò»²¾È¤Ç¤¤Þ¤¹¡£
¥×¥í¥»¥¹¤Î´Ä¶ÊÑ¿ô¤òÊѹ¹¤¹¤ë¤Ë¤Ï¡¤dbx
Æâ¤Ç
run
¥³¥Þ¥ó¥É¤ò»ÈÍѤ·¤Æ¥×¥í¥»¥¹¤ò³«»Ï¤¹¤ëÁ°¤Ë¡¤setenv
¥³¥Þ¥ó¥É¤òÆþÎϤ¹¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£
¼¡¤Ë
setenv
¥³¥Þ¥ó¥É¤Î·Á¼°¤ò¼¨¤·¤Þ¤¹¡£
setenv VAR "STRING"
´û¸¤Î´Ä¶ÊÑ¿ô¤ÎÃͤòÊѹ¹¤¹¤ë¤«¤Þ¤¿¤Ï¿·¤¿¤ËÃͤòÀßÄꤹ¤ë¡£ ´Ä¶ÊÑ¿ô¤ò¥ê¥»¥Ã¥È¤¹¤ë¤Ë¤Ï¡¤¶õʸ»úÎó¤ò»ØÄꤹ¤ë¡£
(dbx) setenv TEXT "sam.c" [1] (dbx) run [2] [4] stopped at [prnt:52,0x120000e34] fprintf(stdout,"%3d.(%3d) %s", (dbx) setenv TEXT "" [3] (dbx) run [4] Usage: sam filename Program exited with code 1
setenv
¥³¥Þ¥ó¥É¤Ç´Ä¶ÊÑ¿ô
TEXT
¤ò
sam.c
¤ËÀßÄꤷ¤Þ¤¹¡£
[Îã¤ËÌá¤ë]
run
¥³¥Þ¥ó¥É¤Ç¥×¥í¥°¥é¥à¤ò½é¤á¤«¤é¼Â¹Ô¤·¤Þ¤¹¡£
¥×¥í¥°¥é¥à¤Ï¡¤´Ä¶ÊÑ¿ô
TEXT
¤Ë»ØÄꤵ¤ì¤¿¥Õ¥¡¥¤¥ë¤«¤éÆþÎϤòÆÉ¤ß¼è¤ê¤Þ¤¹¡£
¥×¥í¥°¥é¥à¤Ï 52 ¹ÔÌܤΥ֥졼¥¯¥Ý¥¤¥ó¥È¤ÇÄä»ß¤·¤Þ¤¹¡£
[Îã¤ËÌá¤ë]
setenv
¥³¥Þ¥ó¥É¤Ç´Ä¶ÊÑ¿ô
TEXT
¤ò¥Ì¥ë¤ËÀßÄꤷ¤Þ¤¹¡£
[Îã¤ËÌá¤ë]
run
¥³¥Þ¥ó¥É¤Ç¥×¥í¥°¥é¥à¤ò¼Â¹Ô¤·¤Þ¤¹¡£
TEXT
´Ä¶ÊÑ¿ô¤Ë¥Ì¥ëÃͤ¬»ØÄꤵ¤ì¤Æ¤¤¤ë¤¿¤á¡¤ÆþÎÏ¥Õ¥¡¥¤¥ë¤ò»ØÄꤹ¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£
[Îã¤ËÌá¤ë]
¥Ö¥ì¡¼¥¯¥Ý¥¤¥ó¥È¤Ï¡¤¥×¥í¥°¥é¥à¤Î¼Â¹Ô¤ò°ì»þŪ¤ËÄä»ß¤·¡¤¤½¤Î»þÅÀ¤Ç¥×¥í¥°¥é¥à¤Î¾õÂÖ¤ò¸¡ºº¤Ç¤¤ë¤è¤¦¤Ë¤·¤Þ¤¹¡£
¤³¤ÎÀá¤Ç¤Ï¡¤dbx
¥³¥Þ¥ó¥É¤ò»ÈÍѤ·¤Æ¡¤ÆÃÄê¹Ô¤Þ¤¿¤Ï¥×¥í¥·¡¼¥¸¥ãÆâ¤Ë¥Ö¥ì¡¼¥¯¥Ý¥¤¥ó¥È¤òÀßÄꤷ¤¿¤ê¡¤³Æ¥·¥°¥Ê¥ë¤Ë¤è¤Ã¤Æ¥×¥í¥°¥é¥à¤Î¼Â¹Ô¤òÄä»ß¤¹¤ëÊýË¡¤Ë¤Ä¤¤¤ÆÀâÌÀ¤·¤Þ¤¹¡£
5.8.1 ³µÍ×
¥×¥í¥°¥é¥à¤¬¥Ö¥ì¡¼¥¯¥Ý¥¤¥ó¥È¤ÇÄä»ß¤¹¤ë¤È¡¤¥Ç¥Ð¥Ã¥¬¤¬¾ðÊó¥á¥Ã¥»¡¼¥¸¤òɽ¼¨¤·¤Þ¤¹¡£
¤¿¤È¤¨¤Ð¡¤main()
¥×¥í¥·¡¼¥¸¥ã¤Î 23 ¹ÔÌܤˤ¢¤ë¥µ¥ó¥×¥ë¡¦¥×¥í¥°¥é¥à
sam.c
¤Ë¥Ö¥ì¡¼¥¯¥Ý¥¤¥ó¥È¤¬ÀßÄꤵ¤ì¤ë¤È¡¤¼¡¤Î¥á¥Ã¥»¡¼¥¸¤¬É½¼¨¤µ¤ì¤Þ¤¹¡£
[4] stopped at [main:40, 0x120000b18] i=strlen(line1.string); | | | | | | | | | [5] | | | [4] | | [3] | [2] [1]
¥Ö¥ì¡¼¥¯¥Ý¥¤¥ó¥È¾õÂÖÈÖ¹æ [Îã¤ËÌá¤ë]
¥×¥í¥·¡¼¥¸¥ã̾ [Îã¤ËÌá¤ë]
¹ÔÈÖ¹æ [Îã¤ËÌá¤ë]
¸½ºß¤Î¥×¥í¥°¥é¥à¡¦¥«¥¦¥ó¥¿
¤³¤ÎÈÖ¹æ¤Ë¤è¤Ã¤Æ¼¨¤µ¤ì¤ë¥Ý¥¤¥ó¥È¤«¤é¥¢¥»¥ó¥Ö¥ê¸À¸ìÌ¿Îá¤òɽ¼¨¤·¤Þ¤¹¡£ 5.7.5 ¹à¤ò»²¾È¡£ [Îã¤ËÌá¤ë]
¥½¡¼¥¹¹Ô [Îã¤ËÌá¤ë]
Ê£¿ô¤Î¥½¡¼¥¹¡¦¥Õ¥¡¥¤¥ë¤¬¤¢¤ë¥×¥í¥°¥é¥à¤Ë¥Ö¥ì¡¼¥¯¥Ý¥¤¥ó¥È¤òÀßÄꤹ¤ëÁ°¤Ë¤Ï¡¤Àµ¤·¤¤¥Õ¥¡¥¤¥ë¤Ë¥Ö¥ì¡¼¥¯¥Ý¥¤¥ó¥È¤òÀßÄꤷ¤Æ¤¤¤ë¤³¤È¤ò³Îǧ¤·¤Þ¤¹¡£ Àµ¤·¤¤¥×¥í¥·¡¼¥¸¥ã¤òÁªÂò¤¹¤ë¤Ë¤Ï¡¤¼¡¤Î¼ê½ç¤ò¼Â¹Ô¤·¤Æ¤¯¤À¤µ¤¤¡£
file
¥³¥Þ¥ó¥É¤ò»ÈÍѤ·¤Æ¥½¡¼¥¹¡¦¥Õ¥¡¥¤¥ë¤òÁªÂò¤¹¤ë¡£
func
¥³¥Þ¥ó¥É¤ò»ÈÍѤ·¤Æ¥×¥í¥·¡¼¥¸¥ã̾¤ò»ØÄꤹ¤ë¡£
list
¥³¥Þ¥ó¥É¤Ç¥Õ¥¡¥¤¥ë¤Þ¤¿¤Ï¥×¥í¥·¡¼¥¸¥ã¤Î¹Ô¤ò¥ê¥¹¥È¤¹¤ë¡£
5.6.4 ¹à¤ò»²¾È¡£
stop at
¥³¥Þ¥ó¥É¤ò»ÈÍѤ·¤ÆÉ¬ÍפʹԤ˥֥졼¥¯¥Ý¥¤¥ó¥È¤òÀßÄꤹ¤ë¡£
5.8.2 stop ¤ª¤è¤Ó stopi ¤Ë¤è¤ë¥Ö¥ì¡¼¥¯¥Ý¥¤¥ó¥È¤ÎÀßÄê
¹âµé¸À¸ì¤ÇºîÀ®¤µ¤ì¤Æ¤¤¤ë¥×¥í¥°¥é¥à¤Î¥Ç¥Ð¥Ã¥°¤Î¾ì¹ç¡¤stop
¥³¥Þ¥ó¥É¤Ï¡¤¼¡¤Î¤è¤¦¤Ë¼Â¹Ô¤òÄä»ß¤¹¤ë¤¿¤á¤Î¥Ö¥ì¡¼¥¯¥Ý¥¤¥ó¥È¤òÀßÄꤷ¤Þ¤¹¡£
¤Ä¤Þ¤ê¡¤ÊÑ¿ô¤¬Êѹ¹¤µ¤ì¤ë¤«¡¤¤¢¤ë¤¤¤Ï»ØÄꤵ¤ì¤¿¾ò·ï¤¬¿¿¤Î¤È¤¤Ë¡¤ÆÃÄê¤Î¥×¥í¥·¡¼¥¸¥ã¤ÎÆÃÄê¤Î¹Ô¤Ç¡¤¥×¥í¥°¥é¥à¤Î¼Â¹Ô¤òÄä»ß¤µ¤»¤ë¤³¤È¤¬¤Ç¤¤Þ¤¹¡£
¥¢¥»¥ó¥Ö¥ê¸À¸ì¤ÇºîÀ®¤µ¤ì¤Æ¤¤¤ë¥×¥í¥°¥é¥à¤Î¥Ç¥Ð¥Ã¥°¤Î¾ì¹ç¤Ï¡¤stopi
¥³¥Þ¥ó¥É¤ò»ÈÍѤ·¤Þ¤¹¡£
¤¿¤À¤·¡¤stopi
¥³¥Þ¥ó¥É¤Ï¡¤¥×¥í¥°¥é¥à¹Ô¤ÎÂå¤ï¤ê¤Ëµ¡³£¸ìÌ¿Îá¤ò¥È¥ì¡¼¥¹¤·¤Þ¤¹¡£
$stop_on_exec
ÄêµÁºÑ¤ßÊÑ¿ô¤òÀßÄꤹ¤ë¤³¤È¤Ë¤è¤ê¡¤dbx
¤Ë»Ø¼¨¤·¤Æ¡¤exec()
¤Ë¤è¤Ã¤Æµ¯Æ°¤µ¤ì¤¿¿·¤·¤¤¥¤¥á¡¼¥¸¤ËÆþ¤ë¤È¡¤Ää»ß¤¹¤ë¤è¤¦¤ËÀßÄꤹ¤ë¤³¤È¤â¤Ç¤¤Þ¤¹ (ɽ 5-8
¤ò»²¾È)¡£
stop at
¥³¥Þ¥ó¥É¤ª¤è¤Ó
stopi at
¥³¥Þ¥ó¥É
ÆÃÄê¤Î¥½¡¼¥¹¡¦¥³¡¼¥É¹Ô¤¢¤ë¤¤¤Ïµ¡³£¸ì¥³¡¼¥É¡¦¥¢¥É¥ì¥¹¤Ë¥Ö¥ì¡¼¥¯¥Ý¥¤¥ó¥È¤òÀßÄꤷ¤Þ¤¹¡£
dbx
¥Ç¥Ð¥Ã¥¬¤Ï¡¤¼Â¹Ô²Äǽ¤Ê¥³¡¼¥É¤Î¤¢¤ë¹Ô¤¢¤ë¤¤¤Ï¥¢¥É¥ì¥¹¤Ç¤Î¤ßÄä»ß¤·¤Þ¤¹¡£
¼Â¹ÔÉÔ²Äǽ¤Ê¹Ô¤¢¤ë¤¤¤Ï¥¢¥É¥ì¥¹¤ò»ØÄꤷ¤¿¾ì¹ç¡¤dbx
¤Ï¼¡¤Î¼Â¹Ô²Äǽ¥Ý¥¤¥ó¥È¤Ë¥Ö¥ì¡¼¥¯¥Ý¥¤¥ó¥È¤òÀßÄꤷ¤Þ¤¹¡£
VAR
¥Ñ¥é¥á¡¼¥¿¤ò»ØÄꤹ¤ë¤È¡¤¥Ç¥Ð¥Ã¥¬¤Ï
VAR
¤ËÊѹ¹¤¬¤¢¤ë¤È¤¤Î¤ß¡¤ÊÑ¿ô¤òɽ¼¨¤·¤Æ¥×¥í¥°¥é¥à¤Î¼Â¹Ô¤òÄä»ß¤·¤Þ¤¹¡£
if EXP
¤ò»ØÄꤹ¤ë¤È¡¤EXP
¤¬¿¿¤Î¤È¤¤Î¤ß
dbx
¤¬Ää»ß¤·¤Þ¤¹¡£
stop in
¥³¥Þ¥ó¥É¤ª¤è¤Ó
stopi in
¥³¥Þ¥ó¥É
¥×¥í¥·¡¼¥¸¥ã¤ÎÀèÆ¬¤Ë¥Ö¥ì¡¼¥¯¥Ý¥¤¥ó¥È¤òÀßÄꤷ¤Þ¤¹¡£ ¤Þ¤¿¤Ï¾ò·ïÉÕ¤¤Ç¥×¥í¥·¡¼¥¸¥ãÃæ¤Ë¥Ö¥ì¡¼¥¯¥Ý¥¤¥ó¥È¤òÀßÄꤷ¤Þ¤¹¡£
stop if
¥³¥Þ¥ó¥É¤Þ¤¿¤Ï
stopi if
¥³¥Þ¥ó¥É
»ØÄꤷ¤¿¾ò·ï¤¬¿¿¤Î¤È¤¤Ë¡¤¥×¥í¥°¥é¥à¤Î¼Â¹Ô¤òÄä»ß¤·¤Þ¤¹¡£
dbx
¤¬³Æ¹Ô¤Î¼Â¹Ô¸å¤Ë¤½¤Î¤Ä¤É¾ò·ï¤Î¸¡ºº¤ò¹Ô¤¦¤¿¤á¡¤¥×¥í¥°¥é¥à¤Î¼Â¹Ô®Å٤ϡ¤ÂçÉý¤ËÃÙ¤¯¤Ê¤ê¤Þ¤¹¡£
¤Ç¤¤ë¸Â¤ê¡¤stop/stopi if
¥³¥Þ¥ó¥É¤Ç¤Ï¤Ê¤¯
stop/stopi at
¤Þ¤¿¤Ï
stop/stopi in
¤ò»ÈÍѤ·¤Æ¤¯¤À¤µ¤¤¡£
$stop_on_exec
ÄêµÁºÑ¤ßÊÑ¿ô¤¬ 1 ¤ËÀßÄꤵ¤ì¤Æ¤¤¤ë¾ì¹ç
exec()
¸Æ¤Ó½Ð¤·¤Ë¤è¤ê¡¤dbx
¤¬Ää»ß¤·¤Æ¿·¤·¤¤¥¤¥á¡¼¥¸¤Î¥·¥ó¥Ü¥ë¡¦¥Æ¡¼¥Ö¥ë¤ÇÆÉ¤ß¼è¤ê¤ò¹Ô¤Ã¤¿¸å¡¤¥¤¥á¡¼¥¸¤Î¥á¥¤¥óµ¯Æ°¥Ý¥¤¥ó¥È¤Þ¤Ç¿Ê¤ß¡¤¥æ¡¼¥¶ÆþÎϤΤ¿¤á¤ËÄä»ß¤¹¤ë¤è¤¦¤Ë¤·¤Þ¤¹¡£
delete
¥³¥Þ¥ó¥É¤Ï¡¤stop
¤¢¤ë¤¤¤Ï
stopi
¥³¥Þ¥ó¥É¤ÇÀßÄꤷ¤¿¥Ö¥ì¡¼¥¯¥Ý¥¤¥ó¥È¤òºï½ü¤·¤Þ¤¹¡£
¼¡¤Ë
stop
¥³¥Þ¥ó¥É ¤ª¤è¤Ó
stopi
¥³¥Þ¥ó¥É¤Î·Á¼°¤ò¼¨¤·¤Þ¤¹¡£
stop VAR
stopi VAR
VAR
¤ÎÃͤËÊѹ¹¤¬¤¢¤ë¤ÈÄä»ß¤¹¤ë¡£
stop VAR at LINE
stopi VAR at ADDRESS
»ØÄꤷ¤¿¥½¡¼¥¹¡¦¥³¡¼¥É¹Ô¤¢¤ë¤¤¤Ïµ¡³£¸ì¥³¡¼¥É¡¦¥¢¥É¥ì¥¹¤Ç
VAR
¤ÎÃͤËÊѹ¹¤¬¤¢¤ë¤ÈÄä»ß¤¹¤ë¡£
stop VAR at LINE if EXP
stopi VAR at ADDRESS if EXP
¼°¤¬¿¿¤Î¾ì¹ç¤Ë¸Â¤ê¡¤»ØÄꤷ¤¿¹Ô¤¢¤ë¤¤¤Ï¥¢¥É¥ì¥¹¤Ç
VAR
¤ÎÃͤËÊѹ¹¤¬¤¢¤ë¤ÈÄä»ß¤¹¤ë¡£
stop if EXP
stopi if EXP
EXP
¤¬¿¿¤Î¤È¤Ää»ß¤¹¤ë¡£
stop VAR if EXP
stopi VAR if EXP
VAR
¤ÎÃͤËÊѹ¹¤¬¤¢¤ê¡¤EXP
¤¬¿¿¤Î¤È¤Ää»ß¤¹¤ë¡£
stop in PROCEDURE
stopi in PROCEDURE
¥×¥í¥·¡¼¥¸¥ã¤ÎÀèÆ¬¤ÇÄä»ß¤¹¤ë¡£
stop VAR in PROCEDURE
VAR
¤ÎÃͤËÊѹ¹¤¬¤¢¤ë¤È¡¤»ØÄꤵ¤ì¤¿¥×¥í¥·¡¼¥¸¥ã¤ÎÃæ¤ÇÄä»ß¤¹¤ë¡£
stop VAR in PROCEDURE if EXP
stopi VAR in PROCEDURE if EXP
EXP
¤¬¿¿¤Î¾ì¹ç¡¤VAR
¤ÎÃͤËÊѹ¹¤¬¤¢¤ë¤È¡¤»ØÄꤵ¤ì¤¿¥×¥í¥·¡¼¥¸¥ã¤ÎÃæ¤ÇÄä»ß¤¹¤ë¡£
Ãí°Õ
VAR
¤ª¤è¤ÓEXP
¤ò¤È¤â¤Ë»ØÄꤹ¤ë¤È¡¤¥×¥í¥·¡¼¥¸¥ã¤ÎºÇ½é¤À¤±¤Ç¤Ê¤¯Â¾¤Î²Õ½ê¤Ç¤â¡¤Ää»ß¤¹¤ë²ÄǽÀ¤¬¤¢¤ê¤Þ¤¹¡£ ¤³¤Îµ¡Ç½¤ò»ÈÍѤ¹¤ë¤È¡¤¥Ç¥Ð¥Ã¥¬¤¬³Æ¥½¡¼¥¹¹Ô¤Î¼Â¹ÔÁ°¤È¸å¤Ë¾ò·ï¤Î¸¡ºº¤ò¹Ô¤ï¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¤¿¤á¡¤¼Â¹Ô®ÅÙ¤¬ÃÙ¤¯¤Ê¤ê¤Þ¤¹¡£ ¤Ê¤ª¡¤Î¾Êý¤Î°ú¿ô¤¬»ØÄꤵ¤ì¤Æ¤¤¤ë¾ì¹ç¤Ï¡¤EXP
¤Ï¾ï¤ËVAR
¤ÎÁ°¤Ë¸¡ºº¤µ¤ì¤Þ¤¹¡£
C ¥×¥í¥°¥é¥à¤Ç¤Î
stop
¥³¥Þ¥ó¥É¤Î»ÈÍÑÎã¤ò¼¡¤Ë¼¨¤·¤Þ¤¹¡£
(dbx) stop at 52 [3] stop at "sam.c":52 (dbx) rerun [3] stopped at [prnt:52,0x120000fb0] fprintf(stdout,"%3d.(%3d) %s", (dbx) stop in prnt [15] stop in prnt (dbx)
stopi
¥³¥Þ¥ó¥É¤Î»ÈÍÑÎã¤ò¼¡¤Ë¼¨¤·¤Þ¤¹¡£
(dbx) stopi at 0x120000c04 [4] stop at 0x120000c04 (dbx) rerun [7] stopped at >*[prnt:52 ,0x120000c04] ldq r16, -32640(gp)
¹âµé¸À¸ì¤ÇºîÀ®¤µ¤ì¤Æ¤¤¤ë¥×¥í¥°¥é¥à¤Î¥Ç¥Ð¥Ã¥°¤Î¾ì¹ç¤Ï¡¤trace
¥³¥Þ¥ó¥É¤ò»ÈÍѤ·¤Æ¡¤¥×¥í¥°¥é¥à¼Â¹ÔÃæ¤ËÊÑ¿ô¤ÎÃͤò¥ê¥¹¥È¤·¡¤¥È¥ì¡¼¥¹¤·¤Æ¤¤¤ëÊÑ¿ô¤Î͸úÈϰϤò·èÄꤹ¤ë¤³¤È¤¬¤Ç¤¤Þ¤¹¡£
¥¢¥»¥ó¥Ö¥ê¸À¸ì¤ÇºîÀ®¤µ¤ì¤Æ¤¤¤ë¥×¥í¥°¥é¥à¤Î¥Ç¥Ð¥Ã¥°¤Î¾ì¹ç¤Ï¡¤tracei
¥³¥Þ¥ó¥É¤ò»ÈÍѤ·¤Þ¤¹¡£
¤¿¤À¤·¡¤tracei
¥³¥Þ¥ó¥É¤Ï¡¤¥×¥í¥°¥é¥à¹Ô¤ÎÂå¤ï¤ê¤Ëµ¡³£¸ìÌ¿Îá¤Ç¥È¥ì¡¼¥¹¤·¤Þ¤¹¡£
¼¡¤Ë
trace
¤ª¤è¤Ó
tracei
¥³¥Þ¥ó¥É¤Î·Á¼°¤ò¼¨¤·¤Þ¤¹¡£
trace LINE
»ØÄê¤Î¥½¡¼¥¹¹Ô¤ò¼Â¹Ô¤¹¤ë¤¿¤Ó¤Ë¥ê¥¹¥È¤¹¤ë¡£
trace VAR
tracei VAR
³Æ¥½¡¼¥¹¹Ô¤¢¤ë¤¤¤Ïµ¡³£¸ìÌ¿Îá¤Î¼Â¹Ô¸å¤Ë¡¤»ØÄê¤ÎÊÑ¿ô¤ò¥ê¥¹¥È¤¹¤ë¡£
trace [VAR] at LINE
tracei [VAR] at ADDRESS
»ØÄꤷ¤¿¹Ô¤¢¤ë¤¤¤ÏÌ¿Îá¤Î»ØÄꤷ¤¿ÊÑ¿ô¤ò¥ê¥¹¥È¤¹¤ë¡£
trace [VAR] in PROCEDURE
tracei [VAR] in PROCEDURE
»ØÄꤷ¤¿¥×¥í¥·¡¼¥¸¥ã¤Î»ØÄꤷ¤¿ÊÑ¿ô¤ò¥ê¥¹¥È¤¹¤ë¡£
trace [VAR] at LINE if EXP
tracei [VAR] at ADDRESS if EXP
¼°¤¬¿¿¤Ç¤¢¤ë¾ì¹ç¤Ë¡¤»ØÄꤷ¤¿¥½¡¼¥¹¡¦¥³¡¼¥É¹Ô¤¢¤ë¤¤¤Ïµ¡³£¸ì¥³¡¼¥É¡¦¥¢¥É¥ì¥¹¤ÎÊÑ¿ô¤ÎÃͤËÊѹ¹¤¬¤¢¤ë¤È¤¡¤¤½¤ÎÊÑ¿ô¤ò¥ê¥¹¥È¤¹¤ë¡£
EXP
¤Ï
VAR
¤è¤êÀè¤Ë¸¡ºº¤µ¤ì¤ë¡£
trace [VAR] in PROCEDURE if EXP
tracei [VAR] in PROCEDURE if EXP
¼°¤¬¿¿¤Ç¤¢¤ë¾ì¹ç¤Ë¡¤»ØÄꤵ¤ì¤¿¥×¥í¥·¡¼¥¸¥ã¤ÎÊÑ¿ô¤ÎÃͤËÊѹ¹¤¬¤¢¤ë¤È¤¡¤¤½¤ÎÊÑ¿ô¤ò¥ê¥¹¥È¤¹¤ë¡£
EXP
¤Ï
VAR
¤è¤êÀè¤Ë¸¡ºº¤µ¤ì¤ë¡£
Îã
(dbx) trace i [5] trace i in main (dbx) rerun sam.c [4] [main:25 ,0x400a50] (dbx) c [5] i changed before [main: line 41]: new value = 19; [5] i changed before [main: line 41]: old value = 19; new value = 14; [5] i changed before [main: line 41]: old value = 14; new value = 19; [5] i changed before [main: line 41]: old value = 19; new value = 13; [5] i changed before [main: line 41]: old value = 13; new value = 17; [5] i changed before [main: line 41]: old value = 17; new value = 3; [5] i changed before [main: line 41]: old value = 3; new value = 1; [5] i changed before [main: line 41]: old value = 1; new value = 30;
5.8.4 dbx ¤Ç¤Î¾ò·ï¥³¡¼¥É¤Îµ½Ò
when
¥³¥Þ¥ó¥É¤Ï¡¤»ØÄꤵ¤ì¤¿¤¢¤ë
dbx
¥³¥Þ¥ó¥É¤ò¼Â¹Ô¤¹¤ë¾ò·ï¤òÀ©¸æ¤·¤Þ¤¹¡£
¼¡¤Ë
when
¥³¥Þ¥ó¥É¤Î·Á¼°¤ò¼¨¤·¤Þ¤¹¡£
when VAR [if EXP] {COMMAND_LIST}
EXP
¤¬¿¿¤Ç¡¤VAR
¤ÎÃͤËÊѹ¹¤¬¤¢¤ë¤È¡¤»ØÄꤷ¤¿¥³¥Þ¥ó¥É¡¦¥ê¥¹¥È¤ò¼Â¹Ô¤¹¤ë¡£
when [VAR] at LINE [if EXP] {COMMAND_LIST}
EXP
¤¬¿¿¤Ç¡¤VAR
¤ÎÃͤËÊѹ¹¤¬¤¢¤ê¡¤¤«¤Ä¥Ç¥Ð¥Ã¥¬¤¬
LINE
¤Î¹Ô¤ËÅþ㤹¤ë¤È¡¤¥³¥Þ¥ó¥É¡¦¥ê¥¹¥È¤ò¼Â¹Ô¤¹¤ë¡£
when in PROCEDURE {COMMAND_LIST}
PROCEDURE
¤ËÆþ¤ë¤È¡¤¥³¥Þ¥ó¥É¡¦¥ê¥¹¥È¤ò¼Â¹Ô¤¹¤ë¡£
when [VAR] in PROCEDURE [if EXP] {COMMAND_LIST}
EXP
¤¬¿¿¤Ç¡¤VAR
¤ÎÃͤËÊѹ¹¤¬¤¢¤ë¤È¡¤PROCEDURE
¤Î³Æ¹Ô¤ËÂФ·¤Æ¡¤»ØÄꤵ¤ì¤¿¥³¥Þ¥ó¥É¤ò¼Â¹Ô¤¹¤ë¡£
EXP
¤Ï
VAR
¤ÎÁ°¤Ë¸¡ºº¤µ¤ì¤ë¡£
Îã
(dbx) when in prnt {print line1.length} [6] print line1.length in prnt (dbx) rerun 19 [1] 14 19
.
.
.
17 59 45 12 More (n if no)? (dbx) delete 6 (dbx) when in prnt {stop} [7] stop in prnt (dbx) rerun [7] stopped at [prnt:52,0x12000fb0] fprintf(stdout,"%3d.(%3d) %s") [2]
line1.length
¤ÎÃÍ [Îã¤ËÌá¤ë]
¥×¥í¥·¡¼¥¸¥ã
prnt
Æâ¤ÇÄä»ß¤·¤Þ¤¹¡£
[Îã¤ËÌá¤ë]
catch
¥³¥Þ¥ó¥É¤Ï¡¤dbx
¤¬¼õ¿®¤¹¤ë¥·¥°¥Ê¥ë¤ò¥ê¥¹¥È¤·¤¿¤ê¡¤¼õ¿®¤¹¤ë¥·¥°¥Ê¥ë¤ò»ØÄꤷ¤¿¤ê¤¹¤ë¾ì¹ç¤Ë»ÈÍѤ·¤Þ¤¹¡£
¥×¥í¥»¥¹¤¬»ØÄê¤Î¥·¥°¥Ê¥ë¤ò¸¡½Ð¤¹¤ë¤È¡¤dbx
¤Ï¥×¥í¥»¥¹¤òÄä»ß¤·¤Þ¤¹¡£
ignore
¥³¥Þ¥ó¥É¤Ï¡¤dbx
¤¬¼õ¿®¤·¤Ê¤¤¥·¥°¥Ê¥ë¤ò¥ê¥¹¥È¤·¤¿¤ê¡¤Ìµ»ë¥ê¥¹¥È¤ËÄɲ乤륷¥°¥Ê¥ë¤ò»ØÄꤹ¤ë¤¿¤á¤Ë»ÈÍѤ·¤Þ¤¹¡£
¼¡¤Ë
catch
¤ª¤è¤Ó
ignore
¥³¥Þ¥ó¥É¤Î·Á¼°¤ò¼¨¤·¤Þ¤¹¡£
catch
dbx
¤¬¼õ¿®¤¹¤ë¤¹¤Ù¤Æ¤Î¥·¥°¥Ê¥ë¤Î¥ê¥¹¥È¤òɽ¼¨¤¹¤ë¡£
catch SIGNAL
¥·¥°¥Ê¥ë¤ò¼õ¿®¥ê¥¹¥È¤ËÄɲ乤롣
ignore
dbx
¤¬¼õ¿®¤·¤Ê¤¤¤¹¤Ù¤Æ¤Î¥·¥°¥Ê¥ë¤Î¥ê¥¹¥È¤òɽ¼¨¤¹¤ë¡£
ignore SIGNAL
»ØÄꤷ¤¿¥·¥°¥Ê¥ë¤ò¼õ¿®¥ê¥¹¥È¤«¤éºï½ü¤·¡¤Ìµ»ë¥ê¥¹¥È¤ËÄɲ乤롣
(dbx) catch [1] INT QUIT ILL TRAP ABRT EMT FPE BUS SEGV SYS PIPE TERM URG \ STOP TTIN TTOU IO XCPU XFSZ VTALRM PROF WINCH INFO USR1 USR2 (dbx) ignore [2] HUP KILL ALRM TSTP CONT CHLD (dbx) catch kill [3] (dbx) catch INT QUIT ILL TRAP ABRT EMT FPE KILL BUS SEGV SYS PIPE TERM URG \ STOP TTIN TTOU IO XCPU XFSZ VTALRM PROF WINCH INFO USR1 USR2 (dbx) ignore HUP ALRM TSTP CONT CHLD (dbx)
¼õ¿®¥ê¥¹¥È¤òɽ¼¨¤·¤Þ¤¹¡£ [Îã¤ËÌá¤ë]
̵»ë¥ê¥¹¥È¤òɽ¼¨¤·¤Þ¤¹¡£ [Îã¤ËÌá¤ë]
KILL
¤ò¼õ¿®¥ê¥¹¥È¤ËÄɲä·¡¤Ìµ»ë¥ê¥¹¥È¤«¤éºï½ü¤·¤Þ¤¹¡£
[Îã¤ËÌá¤ë]
Á°½Ò¤ÎÎãÃæ¤Î¥Ð¥Ã¥¯¥¹¥é¥Ã¥·¥å¤Ï¡¤¹Ô¤Î·Ñ³¤òɽ¤·¤Æ¤¤¤Þ¤¹¡£
catch
¤ª¤è¤Ó
ignore
¤Î¼ÂºÝ¤Î½ÐÎϤϡ¤1 ¹Ô¤Ç¤¹¡£
5.9 ¥×¥í¥°¥é¥à¾õÂ֤θ¡ºº
dbx
¤¬¥Ö¥ì¡¼¥¯¥Ý¥¤¥ó¥È¤ÇÄä»ß¤¹¤ë¤È¡¤¥×¥í¥°¥é¥à¾õÂÖ¤ò¸¡ºº¤·¤ÆÌäÂê¤Î¤¢¤ê¤½¤¦¤Ê²Õ½ê¤ò¸¡ºº¤¹¤ë¤³¤È¤¬¤Ç¤¤Þ¤¹¡£
dbx
¥Ç¥Ð¥Ã¥¬¤Ë¤Ï¡¤¥¹¥¿¥Ã¥¯¡¦¥È¥ì¡¼¥¹¡¤ÊÑ¿ôÃÍ¡¤¤ª¤è¤Ó¥ì¥¸¥¹¥¿Ãͤòɽ¼¨¤¹¤ë
dbx
¥³¥Þ¥ó¥É¤¬¤¢¤ê¤Þ¤¹¡£
¥¹¥¿¥Ã¥¯¡¦¥È¥ì¡¼¥¹¤ËµÏ¿¤µ¤ì¤Æ¤¤¤ë¥¢¥¯¥Æ¥£¥Ö²½¥ì¥Ù¥ë¤Ë¤Ä¤¤¤Æ¤Î¾ðÊó¤òɽ¼¨¤·¤¿¤ê¡¤¥¢¥¯¥Æ¥£¥Ö²½¥ì¥Ù¥ë¤ò¾å²¼¤ËÊѹ¹¤¹¤ë¥³¥Þ¥ó¥É¤â¤¢¤ê¤Þ¤¹ (5.6.2 ¹à¤ò»²¾È)¡£
5.9.1 ÊÑ¿ô¤ª¤è¤Ó¼°¤ÎÃͤνÐÎÏ
print
¥³¥Þ¥ó¥É¤Ï¡¤1 ¤Ä¤Þ¤¿¤ÏÊ£¿ô¤Î¼°¤ÎÃͤòɽ¼¨¤·¤Þ¤¹¡£
printf
¥³¥Þ¥ó¥É¤Ï¡¤»ØÄꤵ¤ì¤¿¥Õ¥©¡¼¥Þ¥Ã¥È¤Ç¾ðÊó¤ò¥ê¥¹¥È¤·¤Þ¤¹¡£
printf
¥³¥Þ¥ó¥É¤Ï¡¤%s
¤ò½ü¤¤¤Æ¡¤printf()
´Ø¿ô¤Ç¥µ¥Ý¡¼¥È¤¹¤ë¤¹¤Ù¤Æ¤Î¥Õ¥©¡¼¥Þ¥Ã¥È¤ò¥µ¥Ý¡¼¥È¤·¤Þ¤¹¡£
¥Õ¥©¡¼¥Þ¥Ã¥È¤Î°ìÍ÷¤Ë¤Ä¤¤¤Æ¤Ï¡¤
printf
(3)printf
¥³¥Þ¥ó¥É¤Ï¡¤ÊÑ¿ô¤ÎÃͤòÊ̤δð¿ô¤Ç»²¾È¤¹¤ë¤³¤È¤¬¤Ç¤¤Þ¤¹¡£
¥³¥Þ¥ó¥ÉÊÌ̾¥ê¥¹¥È (5.5.3 ¹à»²¾È) ¤Ë¤Ï¡¤8 ¿Ê¿ô (po
)¡¤10 ¿Ê¿ô (pd
)¡¤¤ª¤è¤Ó 16 ¿Ê¿ô (px
) ¤Î³Æ´ð¿ô¤ÇÊÑ¿ô¤ÎÃͤòɽ¼¨¤Ç¤¤ë͸ú¤ÊÊÌ̾¤¬ÍѰդµ¤ì¤Æ¤¤¤Þ¤¹¡£
¾Êά»þ¤Î´ð¿ô¤Ï 10 ¿Ê¿ô¤Ç¤¹¡£
¥¤¥ó¥¯¥ë¡¼¥É¡¦¥Õ¥¡¥¤¥ë
regdefs.h
¤Ë¤¢¤ë¡¤¼ÂºÝ¤Î¥Þ¥·¥ó¡¦¥ì¥¸¥¹¥¿Ì¾¤¢¤ë¤¤¤Ï¥½¥Õ¥È¥¦¥§¥¢Ì¾¤Î¤É¤Á¤é¤ò»ØÄꤹ¤ë¤³¤È¤â¤Ç¤¤Þ¤¹¡£
¥ì¥¸¥¹¥¿ÈÖ¹æ¤ÎÁ°¤Ë»ØÄꤵ¤ì¤ëÀÜÆ¬¸ì¤Ï¡¤¥ì¥¸¥¹¥¿¤Î¥¿¥¤¥×¤ò¼¨¤·¤Þ¤¹¡£
¼¡¤Îɽ¤Ë¼¨¤¹¤è¤¦¤Ë¡¤ÀÜÆ¬¸ì¤Ï
$f
¤Þ¤¿¤Ï
$r
¤Î¤¤¤º¤ì¤«¤Ç¤¹¡£
¥ì¥¸¥¹¥¿Ì¾ | ¥ì¥¸¥¹¥¿¡¦¥¿¥¤¥× |
$f00-$f31 |
ÉâÆ°¾®¿ôÅÀ¥ì¥¸¥¹¥¿ (32 ¤Î 1) |
$r00-$r31 |
¥Þ¥·¥ó¡¦¥ì¥¸¥¹¥¿ (32 ¤Î 1) |
$fpcr |
ÉâÆ°¾®¿ôÅÀÀ©¸æ¥ì¥¸¥¹¥¿ |
$pc |
¥×¥í¥°¥é¥à¡¦¥«¥¦¥ó¥¿ÃÍ |
$ps |
¥×¥í¥°¥é¥à¾õÂ֥쥸¥¹¥¿ [µÓÃí 4] |
ÀÜÆ¬¸ì¤ÎÉÕ¤¤¤¿¥ì¥¸¥¹¥¿¤ò
print
¥³¥Þ¥ó¥É¤Ç»ØÄꤷ¤Æ¡¤¥ì¥¸¥¹¥¿Ãͤä¥×¥í¥°¥é¥à¡¦¥«¥¦¥ó¥¿¤òɽ¼¨¤¹¤ë¤³¤È¤¬¤Ç¤¤Þ¤¹¡£
¼¡¤Î¥³¥Þ¥ó¥É¤Ï¡¤¥Þ¥·¥ó¡¦¥ì¥¸¥¹¥¿ 3 ¤ª¤è¤Ó¥×¥í¥°¥é¥à¡¦¥«¥¦¥ó¥¿¤ÎÃͤòɽ¼¨¤·¤Þ¤¹¡£
(dbx) print $r3 (dbx) print $pc
¼¡¤Ë
print
¥³¥Þ¥ó¥É¤Î·Á¼°¤ò¼¨¤·¤Þ¤¹¡£
print EXP1,...,EXPN
»ØÄꤵ¤ì¤¿¼°¤ÎÃͤòɽ¼¨¤¹¤ë¡£
printf "STRING", EXP1,...,EXPN
STRING
¤Ë»ØÄꤵ¤ì¤¿¥Õ¥©¡¼¥Þ¥Ã¥È¤Ç»ØÄꤵ¤ì¤¿¼°¤ÎÃͤòɽ¼¨¤¹¤ë¡£
Ãí°Õ
dbx
¥¡¼¥ï¡¼¥É¤ÈƱ°ì¤Î̾Á°¤¬¼°¤Ë¤¢¤ë¾ì¹ç¤Ï¡¤¤½¤Î̾Á°¤ò¥«¥Ã¥³¤Ç°Ï¤àɬÍפ¬¤¢¤ê¤Þ¤¹¡£ ¤¿¤È¤¨¤Ð¡¤playback
¥³¥Þ¥ó¥É¤Èrecord
¥³¥Þ¥ó¥É¤Î¥¡¼¥ï¡¼¥É¤Ç¤¢¤ëoutput
¤ò¥×¥ê¥ó¥È¤¹¤ë¤È¤¤Ï¡¤¼¡¤Î¤è¤¦¤Ë»ØÄꤷ¤Þ¤¹¡£(dbx) print (output)
Îã
(dbx) print i 14 [1] (dbx) po i 016 [2] (dbx) px i 0xe [3] (dbx) pd i 14 [4] (dbx)
10 ¿Ê¿ô [Îã¤ËÌá¤ë]
8 ¿Ê¿ô [Îã¤ËÌá¤ë]
16 ¿Ê¿ô [Îã¤ËÌá¤ë]
10 ¿Ê¿ô [Îã¤ËÌá¤ë]
printregs
¥³¥Þ¥ó¥É¤Ï¤¹¤Ù¤Æ¤Î¥ì¥¸¥¹¥¿ÃͤΰìÍ÷¤òɽ¼¨¤·¤Þ¤¹¡£
¤³¤Î¥³¥Þ¥ó¥É¤Ë¤Ï°ú¿ô¤ÏÉÔÍפǤ¹¡£
print
¥³¥Þ¥ó¥É¤ÈƱ¤¸¤è¤¦¤Ë¡¤¾Êά»þ¤ÎÀßÄê¤Ç¤Ï¡¤printregs
¤¬É½¼¨¤¹¤ëÃÍ¤Ï 10 ¿Ê¿ô¤Ç¤¹¡£
16 ¿Ê¤ÇÃͤòɽ¼¨¤¹¤ë¾ì¹ç¤Ï¡¤dbx
ÊÑ¿ô
$hexints
¤òÀßÄꤷ¤Þ¤¹¡£
Îã
(dbx) printregs $vfp= 4831837712 $r0_v0=0 $r1_t0=0 $r2_t1=0 $r3_t2=18446744069416926720 $r4_t3=18446744071613142936 $r5_t4=1 $r6_t5=0
.
.
.
$f25= 0.0 $f26= 0.0 $f27= 2.3873098155006918e-314 $f28= 2.6525639909000367e-314 $f29= 9.8813129168249309e-324 $f30= 2.3872988413145664e-314 $f31= 0.0 $pc= 4831840840
5.9.2 dump ¥³¥Þ¥ó¥É¤Ë¤è¤ë¥¢¥¯¥Æ¥£¥Ö²½¥ì¥Ù¥ë¾ðÊó¤Îɽ¼¨
dump
¥³¥Þ¥ó¥É¤Ï¡¤¥¢¥¯¥Æ¥£¥Ö²½¥ì¥Ù¥ë¤Ë¤Ä¤¤¤Æ¤Î¾ðÊó¤òɽ¼¨¤·¤Þ¤¹¡£
»ØÄꤵ¤ì¤¿¥¢¥¯¥Æ¥£¥Ö²½¥ì¥Ù¥ë¤Ë¥í¡¼¥«¥ë¤ÊÊÑ¿ô¤ÎÃͤ⤹¤Ù¤ÆÉ½¼¨¤µ¤ì¤Þ¤¹¡£
¥×¥í¥°¥é¥à¤Ç¸½ºß¼Â¹ÔÃæ¤Î¥¢¥¯¥Æ¥£¥Ö²½¥ì¥Ù¥ë¤òÄ´¤Ù¤ë¤Ë¤Ï¡¤where
¥³¥Þ¥ó¥É¤Ç¥¹¥¿¥Ã¥¯¡¦¥È¥ì¡¼¥¹¤ò¹Ô¤¤¤Þ¤¹¡£
¼¡¤Ë
dump
¥³¥Þ¥ó¥É¤Î·Á¼°¤ò¼¨¤·¤Þ¤¹¡£
dump
¸½ºß¤Î¥¢¥¯¥Æ¥£¥Ö²½¥ì¥Ù¥ë¤Î¾ðÊó¤òɽ¼¨¤¹¤ë¡£
dump .
¤¹¤Ù¤Æ¤Î¥¢¥¯¥Æ¥£¥Ö²½¥ì¥Ù¥ë¤Î¾ðÊó¤òɽ¼¨¤¹¤ë¡£
dump PROCEDURE
»ØÄꤵ¤ì¤¿¥×¥í¥·¡¼¥¸¥ã (¥¢¥¯¥Æ¥£¥Ö²½¥ì¥Ù¥ë) ¤Ë¤Ä¤¤¤Æ¤Î¾ðÊó¤òɽ¼¨¤¹¤ë¡£
Îã
(dbx) where > 0 prnt(pline = 0x11ffffcb8) ["sam.c":52, 0x120000c04] 1 main(argc = 2, argv = 0x11ffffe08) ["sam.c":45, 0x120000bac] (dbx) dump prnt(pline = 0x11ffffcb8) ["sam.c":52, 0x120000c04] (dbx) dump . > 0 prnt(pline = 0x11ffffcb8) ["sam.c":52, 0x120000c04] 1 main(argc = 2, argv = 0x11ffffe08) ["sam.c":45, 0x120000bac] line1 = struct { string = "#include <stdio.h>" length = 19 linenumber = 0 } fd = 0x140000158 fname = 0x11ffffe9c = "sam.c" i = 19 curlinenumber = 1 (dbx) dump main main(argc = 2, argv = 0x11ffffe08) ["sam.c":45, 0x120000bac] line1 = struct { string = "#include <stdio.h>" length = 19 linenumber = 0 } fd = 0x140000158 fname = 0x11ffffe9c = "sam.c" i = 19 curlinenumber = 1 (dbx)
¥á¥â¥ê¤ÎÆâÍÆ¤Ï¡¤¥¢¥É¥ì¥¹¤ª¤è¤Óɽ¼¨¥Õ¥©¡¼¥Þ¥Ã¥È¤ò»ØÄꤹ¤ë¤³¤È¤Ë¤è¤Ã¤ÆÉ½¼¨¤¹¤ë¤³¤È¤¬¤Ç¤¤Þ¤¹¡£
¥³¥Þ¥ó¥É¤Î·Á¼°¤Ï¼¡¤Î¤È¤ª¤ê¤Ç¡¤3 ¤Ä¤ÎÉôʬ¤Î´Ö¤Ë¤Ï¥¹¥Ú¡¼¥¹¤ÏÉÔÍפǤ¹¡£
address/count mode
address ¤Ë¤Ïɽ¼¨¤¹¤ëºÇ½é¤Î¹àÌܤΥ¢¥É¥ì¥¹¡¤count ¤Ë¤Ïɽ¼¨¤¹¤ë¹àÌܤοô¡¤mode ¤Ë¤Ï¹àÌܤÎɽ¼¨¥Õ¥©¡¼¥Þ¥Ã¥È¤ò»ØÄꤷ¤Þ¤¹¡£ ¼¡¤ËÎã¤ò¼¨¤·¤Þ¤¹¡£
prnt/20i
¤³¤ÎÎã¤Ç¤Ï¡¤prnt
´Ø¿ô¤Î¥¢¥É¥ì¥¹¤Ç»Ï¤Þ¤ë 20 ¤Îµ¡³£¸ìÌ¿Îá¤ÎÆâÍÆ¤òɽ¼¨¤·¤Þ¤¹¡£
mode
¤Ë»ØÄê¤Ç¤¤ëÃͤòɽ 5-9
¤Ë¼¨¤·¤Þ¤¹¡£
ɽ 5-9: ¥á¥â¥ê¡¦¥¢¥É¥ì¥¹É½¼¨¥â¡¼¥É
¥â¡¼¥É | ɽ¼¨¥Õ¥©¡¼¥Þ¥Ã¥È |
b |
8 ¿Ê¿ô¤Ç¥Ð¥¤¥È¤ÎÆâÍÆ¤òɽ¼¨¤¹¤ë¡£ |
c |
1 ¥Ð¥¤¥Èʸ»ú¤È¤·¤ÆÉ½¼¨¤¹¤ë¡£ |
D |
10 ¿Ê¿ô¤Ç¥í¥ó¥°¥ï¡¼¥É (64 ¥Ó¥Ã¥È) ¤òɽ¼¨¤¹¤ë¡£ |
d |
10 ¿Ê¿ô¤Ç¥·¥ç¡¼¥È¥ï¡¼¥É (16 ¥Ó¥Ã¥È) ¤òɽ¼¨¤¹¤ë¡£ |
dd |
10 ¿Ê¿ô¤Ç¥ï¡¼¥É (32 ¥Ó¥Ã¥È) ¤òɽ¼¨¤¹¤ë¡£ |
f |
ñÀºÅټ¿ô¤òɽ¼¨¤¹¤ë¡£ |
g |
ÇÜÀºÅټ¿ô¤òɽ¼¨¤¹¤ë¡£ |
i |
µ¡³£¸ìÌ¿Îá¤òɽ¼¨¤¹¤ë¡£ |
O |
8 ¿Ê¿ô¤Ç¥í¥ó¥°¥ï¡¼¥É¤òɽ¼¨¤¹¤ë¡£ |
o |
8 ¿Ê¿ô¤Ç¥·¥ç¡¼¥È¥ï¡¼¥É¤òɽ¼¨¤¹¤ë¡£ |
oo |
8 ¿Ê¿ô¤Ç¥ï¡¼¥É (32 ¥Ó¥Ã¥È) ¤òɽ¼¨¤¹¤ë¡£ |
s |
¥Ì¥ë¡¦¥Ð¥¤¥È¤Ç½ª¤ï¤ëʸ»úÎó¤òɽ¼¨¤¹¤ë¡£ |
X |
16 ¿Ê¿ô¤Ç¥í¥ó¥°¥ï¡¼¥É¤òɽ¼¨¤¹¤ë¡£ |
x |
16 ¿Ê¿ô¤Ç¥·¥ç¡¼¥È¥ï¡¼¥É¤òɽ¼¨¤¹¤ë¡£ |
xx |
16 ¿Ê¿ô¤Ç¥ï¡¼¥É (32 ¥Ó¥Ã¥È) ¤òɽ¼¨¤¹¤ë¡£ |
¥á¥â¥ê¤Î¥¢¥É¥ì¥¹¤òÌ¿Îá¤È¤·¤ÆÉ½¼¨¤·¤¿¤È¤¤Î½ÐÎϤϼ¡¤ÎÎã¤Î¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¡£
(dbx) &prnt/20i [prnt:51, 0x120000bf0] ldah gp, 8193(r27) [prnt:51, 0x120000bf4] lda gp, -25616(gp) [prnt:51, 0x120000bf8] lda sp, -64(sp) [prnt:51, 0x120000bfc] stq r26, 8(sp) [prnt:51, 0x120000c00] stq r16, 16(sp) [prnt:52, 0x120000c04] ldq r16, -32640(gp) >*[prnt:52, 0x120000c08] addq r16, 0x38, r16 [prnt:52, 0x120000c0c] ldq r17, -32552(gp) [prnt:52, 0x120000c10] ldq r1, 16(sp) [prnt:52, 0x120000c14] ldl r18, 260(r1) [prnt:52, 0x120000c18] ldl r19, 256(r1) [prnt:52, 0x120000c1c] bis r1, r1, r20 [prnt:52, 0x120000c20] ldq r27, -32624(gp) [prnt:52, 0x120000c24] jsr r26, (r27), 0x4800030a0 [prnt:52, 0x120000c28] ldah gp, 8193(r26) [prnt:52, 0x120000c2c] lda gp, -25672(gp) [prnt:54, 0x120000c30] ldq r16, -32640(gp) [prnt:54, 0x120000c34] addq r16, 0x38, r16 [prnt:54, 0x120000c38] ldq r27, -32544(gp) [prnt:54, 0x120000c3c] jsr r26, (r27), 0x480003100
5.9.4 dbx ¥»¥Ã¥·¥ç¥ó¤ÎÆþ½ÐÎϤεϿ¤ª¤è¤ÓºÆÀ¸
dbx
¥Ç¥Ð¥Ã¥¬¤Ï¡¤¥×¥í¥°¥é¥à¤Ø¤ÎÆþÎϤª¤è¤Ó½ÐÎϤòµÏ¿¤·¤¿¤ê¡¤µÏ¿¤·¤¿ÆþÎÏ¥³¥Þ¥ó¥É¤òºÆ¼Â¹Ô¤¹¤ë¤³¤È¤¬¤Ç¤¤Þ¤¹¡£
µÏ¿¾ðÊó¤Ï¡¤¸å¤ÇÍøÍѤǤ¤ë¤è¤¦¤Ë¥Õ¥¡¥¤¥ë¤Ë½ñ¤¹þ¤Þ¤ì¤Þ¤¹¡£
ÆþÎϤεϿ¤Ï¡¤¥³¥Þ¥ó¥É¡¦¥·¡¼¥±¥ó¥¹¤ò·«¤êÊÖ¤·¤Æ¼Â¹Ô¤¹¤ë¤¿¤á¤ËÍøÍѤ¹¤ë¥³¥Þ¥ó¥É¡¦¥Õ¥¡¥¤¥ë¤ÎºîÀ®¤Ë͸ú¤Ç¤¹¡£
¤Þ¤¿¡¤½ÐÎϤεϿ¤Ï¡¤²èÌ̤Ëɽ¼¨¤¹¤ë¤Ë¤Ï¿¤¹¤®¤ë¾ðÊó¤òÊݴɤ·¤Æ¸å¤ÇʬÀϤ¹¤ë¾ì¹ç¤Ê¤É¤ËÊØÍø¤Ç¤¹¡£
½ÐÎÏ¥Õ¥¡¥¤¥ë¤ò¸å¤Ç»²¾È¤¹¤ë¾ì¹ç¤Ë¤Ï¡¤µÏ¿¥Õ¥¡¥¤¥ë¤òľÀÜÆÉ¤à¤³¤È¤â¡¤dbx
¤ÇºÆ¸½¤¹¤ë¤³¤È¤â¤Ç¤¤Þ¤¹¡£
5.9.4.1 ¥Ç¥Ð¥Ã¥¬ÆþÎϤεϿ¤ª¤è¤ÓºÆ¼Â¹Ô
ÆþÎϤ·¤¿¥Ç¥Ð¥Ã¥¬¡¦¥³¥Þ¥ó¥É¤òµÏ¿¤¹¤ë¤Ë¤Ï¡¤record input
¥³¥Þ¥ó¥É¤ò»ÈÍѤ·¤Þ¤¹¡£
record input
¥³¥Þ¥ó¥É¤Ë¤è¤Ã¤ÆµÏ¿¤µ¤ì¤¿¥³¥Þ¥ó¥É¤ò·«¤êÊÖ¤¹¤Ë¤Ï¡¤playback input
¥³¥Þ¥ó¥É¤ò»ÈÍѤ·¤Þ¤¹¡£
record input
¥³¥Þ¥ó¥É¤ª¤è¤Ó
playback input
¥³¥Þ¥ó¥É¤Î·Á¼°¤Ï¼¡¤Î¤È¤ª¤ê¤Ç¤¹¡£
record input [FILE]
¤¹¤Ù¤Æ¤Î
dbx
¥³¥Þ¥ó¥É¤ò¥Õ¥¡¥¤¥ë¤ËµÏ¿¤¹¤ë¡£
µÏ¿¥Õ¥¡¥¤¥ë¤ò»ØÄꤷ¤Ê¤¤¾ì¹ç¤Ï
/tmp
¥Ç¥£¥ì¥¯¥È¥ê¤Ë°ì»þ¥Õ¥¡¥¤¥ë¤¬ºîÀ®¤µ¤ì¤ë¡£
playback input [FILE]
source [FILE]
»ØÄꤵ¤ì¤¿¥Õ¥¡¥¤¥ë¡¤¤Þ¤¿¤Ï¥Õ¥¡¥¤¥ë̾¤¬»ØÄꤵ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¤Ï°ì»þ¥Õ¥¡¥¤¥ë¤«¤é¥³¥Þ¥ó¥É¤ò¼Â¹Ô¤¹¤ë¡£
°ì»þ¥Õ¥¡¥¤¥ë¤Î̾Á°¤Ï¥Ç¥Ð¥Ã¥¬ÊÑ¿ô
$defaultin
¤Ë¤¢¤ê¤Þ¤¹¡£
°ì»þ¥Õ¥¡¥¤¥ë̾¤òɽ¼¨¤¹¤ë¤Ë¤Ï¡¤¼¡¤Î¤è¤¦¤Ë
print
¥³¥Þ¥ó¥É¤ò¼Â¹Ô¤·¤Æ¤¯¤À¤µ¤¤¡£
(dbx) print $defaultin
µÏ¿¤·¤¿½ÐÎϤò¸½ºß¤Î¥Ç¥Ð¥Ã¥°¡¦¥»¥Ã¥·¥ç¥ó¤Ç¤Î¤ß»²¾È¤¹¤ëɬÍפ¬¤¢¤ë¾ì¹ç¤Ï¡¤°ì»þ¥Õ¥¡¥¤¥ë¤ò»ÈÍѤ·¤Þ¤¹¡£
¸½ºß¤Î¥Ç¥Ð¥Ã¥°¡¦¥»¥Ã¥·¥ç¥ó½ªÎ»¸å¤ËµÏ¿¾ðÊó¤òÍøÍѤ¹¤ë¾ì¹ç¤Ï¡¤¥Õ¥¡¥¤¥ë̾¤ò»ØÄꤷ¤ÆµÏ¿¤·¤Æ¤ª¤¤Þ¤¹¡£
µÏ¿¤¬¹Ô¤ï¤ì¤Æ¤¤¤ë¤«¤É¤¦¤«¤òÄ´¤Ù¤ë¾ì¹ç¤Ï
status
¥³¥Þ¥ó¥É¤ò¼Â¹Ô¤·¤Þ¤¹¡£
µÏ¿¤òÃæ»ß¤¹¤ë¾ì¹ç¤Ï
delete
¥³¥Þ¥ó¥É¤ò»ÈÍѤ·¤Þ¤¹¡£
¤³¤ì¤é¤Î¥Õ¥¡¥¤¥ë¤âµÏ¿¤µ¤ì¤ë¤³¤È¤ËÃí°Õ¤·¤Æ¤¯¤À¤µ¤¤¡£
¸å¤ÇÍøÍѤ¹¤ë¤¿¤á¤Ë¥Õ¥¡¥¤¥ë¤òºîÀ®¤·¤Æ¤¤¤ë¾ì¹ç¤Ï¡¤¥Õ¥¡¥¤¥ë¤òÊÔ½¸¤·¤Æ¤³¤Î¼ï¤Î¥³¥Þ¥ó¥É¤ÎµÏ¿¤òºï½ü¤·¤Æ¤ª¤¯É¬Íפ¬¤¢¤ë¤«¤â¤·¤ì¤Þ¤»¤ó¡£
record input
¥³¥Þ¥ó¥É¤ÇµÏ¿¤·¤¿¥³¥Þ¥ó¥É¤òºÆ¼Â¹Ô¤¹¤ë¾ì¹ç¤Ï¡¤playback input
¥³¥Þ¥ó¥É¤ò»ÈÍѤ·¤Þ¤¹¡£
¾Êά»þ¤ÎÀßÄê¤Ç¤Ï¡¤playback input
¤Ë¤è¤ë¥³¥Þ¥ó¥É¤ÎºÆ¼Â¹Ô¤Ï¥µ¥¤¥ì¥ó¥È¡¦¥â¡¼¥É¤Ç¹Ô¤ï¤ì¤ë¤¿¤á¡¤ºÆ¼Â¹Ô¤ÎÍͻҤÏɽ¼¨¤µ¤ì¤Þ¤»¤ó¡£
dbx
ÊÑ¿ô
$pimode
¤¬ 1 ¤ËÀßÄꤵ¤ì¤Æ¤¤¤ë¾ì¹ç¤Ï¡¤¥³¥Þ¥ó¥É¤ÎºÆ¼Â¹Ô¤ÎÍͻҤ¬É½¼¨¤µ¤ì¤Þ¤¹¡£
¼¡¤ÎÎã¤Ç¤Ï¡¤ÆþÎϤµ¤ì¤¿¥³¥Þ¥ó¥É¤òµÏ¿¤·¤¿¸å¡¤ºîÀ®¤·¤¿¥Õ¥¡¥¤¥ë¤òɽ¼¨¤·¤Æ¤¤¤Þ¤¹¡£
(dbx) record input [1] [2] record input /tmp/dbxtX026963 (0 lines) (dbx) status [2] record input /tmp/dbxtX026963 (1 lines) (dbx) stop in prnt [3] stop in prnt (dbx) when i = 19 {stop} [4] stop ifchanged i = 19 (dbx) delete 2 [2] (dbx) playback input [3] [3] stop in prnt [4] stop ifchanged i = 19 [5] stop in prnt [6] stop ifchanged i = 19 /tmp/dbxtX026963: 4: unknown event 2 [4] (dbx)
µÏ¿¤ò³«»Ï¤·¤Þ¤¹¡£ [Îã¤ËÌá¤ë]
µÏ¿¤òÃæ»ß¤·¤Þ¤¹¡£ [Îã¤ËÌá¤ë]
ÆþÎÏ¥³¥Þ¥ó¥É¤òºÆ¸½¤·¤Þ¤¹¡£ [Îã¤ËÌá¤ë]
µÏ¿¤òÃæ»ß¤·¤¿¤È¤¤Ë¥¤¥Ù¥ó¥È 2 (µÏ¿¤Î³«»Ï) ¤òºï½ü¤·¤Æ¤¤¤ë¤¿¤á¡¤¥¨¥é¡¼¡¦¥á¥Ã¥»¡¼¥¸¤¬É½¼¨¤µ¤ì¤Þ¤¹¡£ [Îã¤ËÌá¤ë]
¤³¤ÎÎã¤Ç¤Ï¡¤dbx
¥³¥Þ¥ó¥É¤ÇºîÀ®¤·¤¿°ì»þ¥Õ¥¡¥¤¥ë¤Ë¤Ï¡¤¼¡¤ÎÆâÍÆ¤¬µÏ¿¤µ¤ì¤Æ¤¤¤Þ¤¹¡£
status stop in prnt when i = 19 {stop} delete 2
5.9.4.2 ¥Ç¥Ð¥Ã¥¬½ÐÎϤεϿ¤ª¤è¤ÓºÆ¼Â¹Ô
¥Ç¥Ð¥Ã¥°¡¦¥»¥Ã¥·¥ç¥óÃæ¤Î
dbx
½ÐÎϤòµÏ¿¤¹¤ë¤Ë¤Ï¡¤record output
¥³¥Þ¥ó¥É¤ò»ÈÍѤ·¤Þ¤¹¡£
½ÐÎϤȤȤâ¤ËÆþÎϤâµÏ¿¤¹¤ë¾ì¹ç¤Ï¡¤dbx
ÊÑ¿ô
$rimode
¤òÀßÄꤷ¤Þ¤¹¡£
µÏ¿¤µ¤ì¤¿¾ðÊó¤ò»²¾È¤¹¤ë¤Ë¤Ï¡¤playback output
¥³¥Þ¥ó¥É¤Þ¤¿¤ÏŬÅö¤Ê¥Æ¥¥¹¥È¡¦¥¨¥Ç¥£¥¿¤ò»ÈÍѤ·¤Þ¤¹¡£
¼¡¤Ë
record output
¥³¥Þ¥ó¥É¤ª¤è¤Ó
playback output
¥³¥Þ¥ó¥É¤Î·Á¼°¤ò¼¨¤·¤Þ¤¹¡£
record output [FILE]
»ØÄꤷ¤¿¥Õ¥¡¥¤¥ë¤Ë¤¹¤Ù¤Æ¤Î
dbx
¥³¥Þ¥ó¥É¤òµÏ¿¤¹¤ë¡£
¥Õ¥¡¥¤¥ë¤ò¾Êά¤·¤¿¾ì¹ç¤Ï
/tmp
¥Ç¥£¥ì¥¯¥È¥ê¤Ë°ì»þ¥Õ¥¡¥¤¥ë¤¬ºîÀ®¤µ¤ì¤ë¡£
playback output [FILE]
»ØÄꤵ¤ì¤¿¥Õ¥¡¥¤¥ë¡¤¤Þ¤¿¤Ï¥Õ¥¡¥¤¥ë̾¤¬»ØÄꤵ¤ì¤Ê¤¤¾ì¹ç¤Ï°ì»þ¥Õ¥¡¥¤¥ë¤«¤é¥³¥Þ¥ó¥É¤òɽ¼¨¤¹¤ë¡£
°ì»þ¥Õ¥¡¥¤¥ë¤Î̾Á°¤Ï¥Ç¥Ð¥Ã¥¬ÊÑ¿ô
$defaultout
¤Ë¤¢¤ê¤Þ¤¹¡£
°ì»þ¥Õ¥¡¥¤¥ë̾¤òɽ¼¨¤¹¤ë¤Ë¤Ï¡¤¼¡¤Î¤è¤¦¤Ë
print
¥³¥Þ¥ó¥É¤ò¼Â¹Ô¤·¤Æ¤¯¤À¤µ¤¤¡£
(dbx) print $defaultout
playback output
¥³¥Þ¥ó¥É¤Ï
cat
¥³¥Þ¥ó¥É¤ÈƱ¤¸¤è¤¦¤Ëµ¡Ç½¤·¤Þ¤¹¡£
record output
¥³¥Þ¥ó¥É¤Ë¤è¤ëɽ¼¨¤Ï¡¤µÏ¿¥Õ¥¡¥¤¥ë¤ÎÆâÍÆ¤ÈƱ°ì¤Î¤â¤Î¤Ç¤¹¡£
µÏ¿¤·¤¿½ÐÎϤò¸½ºß¤Î¥Ç¥Ð¥Ã¥°¡¦¥»¥Ã¥·¥ç¥ó¤Ç¤Î¤ß»²¾È¤¹¤ëɬÍפ¬¤¢¤ë¾ì¹ç¤Ï¡¤°ì»þ¥Õ¥¡¥¤¥ë¤ò»ÈÍѤ·¤Þ¤¹¡£
¸½ºß¤Î¥Ç¥Ð¥Ã¥°¡¦¥»¥Ã¥·¥ç¥ó½ªÎ»¸å¤ËµÏ¿¾ðÊó¤òÍøÍѤ¹¤ë¾ì¹ç¤Ï¡¤¥Õ¥¡¥¤¥ë̾¤ò»ØÄꤷ¤ÆµÏ¿¤·¤Æ¤ª¤¤Þ¤¹¡£
µÏ¿¤¬¹Ô¤ï¤ì¤Æ¤¤¤ë¤«¤É¤¦¤«¤òÄ´¤Ù¤ë¾ì¹ç¤Ï
status
¥³¥Þ¥ó¥É¤ò¼Â¹Ô¤·¤Þ¤¹¡£
µÏ¿¤òÃæ»ß¤¹¤ë¾ì¹ç¤Ï
delete
¥³¥Þ¥ó¥É¤ò»ÈÍѤ·¤Þ¤¹¡£
¼¡¤ÎÎã¤Ç¤Ï¡¤dbx
¥³¥Þ¥ó¥É¤Î¼Â¹Ô·ë²Ì¡¤¤ª¤è¤Ó
code
¤È¤¤¤¦¥Õ¥¡¥¤¥ë¤ËµÏ¿¤µ¤ì¤¿¤³¤Î¥³¥Þ¥ó¥É¼Â¹Ô¤Î½ÐÎϤò¼¨¤·¤Æ¤¤¤Þ¤¹¡£
(dbx) record output code [3] record output code (0 lines) (dbx) stop at 25 [4] stop at "sam.c":25 (dbx) run sam.c [4] stopped at [main:25 ,0x120000a48] if (argc < 2) { (dbx) delete 3 (dbx) playback output code [3] record output code (0 lines) (dbx) [4] stop at "sam.c":25 (dbx) [4] stopped at [main:25 ,0x120000a48] if (argc < 2) { (dbx)
5.10 ¥³¥¢¡¦¥À¥ó¥×¡¦¥Õ¥¡¥¤¥ë¤Î¥Í¡¼¥ß¥ó¥°
¤³¤ÎÀá¤Ç¤Ï¡¤¥ª¥Ú¥ì¡¼¥Æ¥£¥ó¥°¡¦¥·¥¹¥Æ¥à¤Î¥³¥¢¡¦¥À¥ó¥×¡¦¥Õ¥¡¥¤¥ë¤Î¥Í¡¼¥ß¥ó¥°µ¡Ç½¤ò͸ú¤Ë¤·¤Æ¡¤Ê£¿ô¤Î¥³¥¢¡¦¥Õ¥¡¥¤¥ë¤òÊݸ¤Ç¤¤ë¤è¤¦¤Ë¤¹¤ëÊýË¡¤Ë¤Ä¤¤¤ÆÀâÌÀ¤·¤Þ¤¹¡£
¥³¥¢¡¦¥Õ¥¡¥¤¥ë¤Î¥Í¡¼¥ß¥ó¥°µ¡Ç½¤ò͸ú¤Ë¤¹¤ë¤È¡¤¥·¥¹¥Æ¥à¤Ï¡¤¼¡¤Î·Á¼°¤Î̾Á°¤Ç¥³¥¢¡¦¥Õ¥¡¥¤¥ë¤òÀ¸À®¤·¤Þ¤¹¡£
core.prog-name.host-name.tag
¥³¥¢¡¦¥Õ¥¡¥¤¥ë̾¤Ï¡¤¥Ô¥ê¥ª¥É¤Ç¶èÀڤ俼¡¤Î 4 ¤Ä¤ÎÉôʬ¤«¤é¤Ê¤ê¤Þ¤¹¡£
û¤¤Ê¸»úÎó¤Î
core
¡£
ps
¥³¥Þ¥ó¥É¤Çɽ¼¨¤µ¤ì¤ë 16 ʸ»ú¤Þ¤Ç¤Î¥×¥í¥°¥é¥à̾¡£
16 ʸ»ú¤Þ¤Ç¤Î¥·¥¹¥Æ¥à¤Î¥Í¥Ã¥È¥ï¡¼¥¯¡¦¥Û¥¹¥È̾ (¥Û¥¹¥È̾¥Õ¥©¡¼¥Þ¥Ã¥È¤ÎºÇ½é¤Î¥É¥Ã¥È¤ÎÁ°¤Ë¤¢¤ë¥Û¥¹¥È̾¤ÎÉôʬ¤«¤é)¡£
¥Û¥¹¥È¾å¤Î¥×¥í¥°¥é¥à¤ÇÀ¸À®¤µ¤ì¤¿¤¹¤Ù¤Æ¤Î¥³¥¢¡¦¥Õ¥¡¥¤¥ë¤ò°ì°Õ¤Ë¤¹¤ë¤¿¤á¤Ë¥³¥¢¡¦¥Õ¥¡¥¤¥ë¤Ë³ä¤êÅö¤Æ¤é¤ì¤¿¿ô»ú¤Î¥¿¥°¡£
¤³¤Î¥¿¥°¤ÎºÇÂçÃÍ¡¤¤Ä¤Þ¤ê¡¤¤³¤Î¥×¥í¥°¥é¥à¤ª¤è¤Ó¥Û¥¹¥È¤ÇÀ¸À®¤µ¤ì¤ë¥³¥¢¡¦¥Õ¥¡¥¤¥ë¤ÎºÇÂç¿ô¤Ï¡¤¥·¥¹¥Æ¥à¹½À®¥Ñ¥é¥á¡¼¥¿¤ÇÀßÄꤵ¤ì¤Þ¤¹ (5.10.1 ¹à¤ò»²¾È)¡£
¥¿¥°¤Ï¡¤Ê¸»ú¤É¤ª¤ê¤Î¥Ð¡¼¥¸¥ç¥óÈÖ¹æ¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó¡£ ¥·¥¹¥Æ¥à¤Ï¡¤¥³¥¢¡¦¥Õ¥¡¥¤¥ë¤ËÂФ·¤ÆºÇ½é¤Ë»ÈÍѲÄǽ¤Ê°ì°Õ¤Î¥¿¥°¤òÁªÂò¤·¤Þ¤¹¡£ ¤¿¤È¤¨¤Ð¡¤¥×¥í¥°¥é¥à¤Î¥³¥¢¡¦¥Õ¥¡¥¤¥ë¤¬¥¿¥°¤Î 0¡¤1¡¤3¡¤¤ò»ÈÍѤ·¤Æ¤¤¤ë¾ì¹ç¡¤¥·¥¹¥Æ¥à¤Ï¤½¤Î¥×¥í¥°¥é¥à¤Ë¤Ä¤¤¤ÆºîÀ®¤¹¤ë¼¡¤Î¥³¥¢¡¦¥Õ¥¡¥¤¥ë¤Ë¤Ï¡¤¥¿¥° 2 ¤ò»ÈÍѤ·¤Þ¤¹¡£ ¥³¥¢¡¦¥Õ¥¡¥¤¥ë¡¦¥¤¥ó¥¹¥¿¥ó¥¹¤Î¥·¥¹¥Æ¥à¹½À®¾å¤Î¾å¸Â¤Ë㤷¤¿¾ì¹ç¤Ë¤Ï¡¤¤½¤Î¥×¥í¥°¥é¥à¤È¥Û¥¹¥È¤ÎÁȤ߹ç¤ï¤»¤ËÂФ·¤Æ¤Ï¡¤¤½¤ì°Ê¾å¥³¥¢¡¦¥Õ¥¡¥¤¥ë¤ÏºîÀ®¤µ¤ì¤Þ¤»¤ó¡£ ¾Êά»þ¤ÎÀßÄê¤Ç¤Ï¡¤16 ¥Ð¡¼¥¸¥ç¥ó¤Þ¤Ç¤Î¥³¥¢¡¦¥Õ¥¡¥¤¥ë¤¬ºîÀ®¤µ¤ì¤Þ¤¹¡£
¥Ç¥£¥¹¥¯¡¦¥¹¥Ú¡¼¥¹¤òÀáÌ󤹤뤿¤á¡¤¥³¥¢¡¦¥Õ¥¡¥¤¥ë¤Ï¡¤¥Á¥§¥Ã¥¯¤·¤¿¸å¤Ëɬ¤ººï½ü¤·¤Æ¤¯¤À¤µ¤¤¡£ ̾Á°¤òÉÕ¤±¤¿¥³¥¢¡¦¥Õ¥¡¥¤¥ë¤Ï¾å½ñ¤¤µ¤ì¤Ê¤¤¤Î¤Ç¡¤¤³¤Îºî¶È¤¬É¬Íפˤʤê¤Þ¤¹¡£
¥³¥¢¡¦¥Õ¥¡¥¤¥ë¤Î¥Í¡¼¥ß¥ó¥°µ¡Ç½¤Ï¡¤¥·¥¹¥Æ¥à¡¦¥ì¥Ù¥ë (5.10.1 ¹à) ¤Ç¤â¡¤¸Ä¡¹¤Î¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¡¦¥ì¥Ù¥ë (5.10.2 ¹à) ¤Ç¤â͸ú¤Ë¤¹¤ë¤³¤È¤¬¤Ç¤¤Þ¤¹¡£
5.10.1 ¥·¥¹¥Æ¥à¡¦¥ì¥Ù¥ë¤Ç¤Î¥³¥¢¡¦¥Õ¥¡¥¤¥ë¤Î¥Í¡¼¥ß¥ó¥°µ¡Ç½¤Î͸ú²½
¥·¥¹¥Æ¥à¡¦¥ì¥Ù¥ë¤Ç¤Î¥³¥¢¡¦¥Õ¥¡¥¤¥ë¤Î¥Í¡¼¥ß¥ó¥°µ¡Ç½¤Ï¡¤
dxkerneltuner
(8X)sysconfig
(8)enhanced-core-name
¥×¥í¥»¥¹¡¦¥µ¥Ö¥·¥¹¥Æ¥à°À¤ò 1 ¤ËÀßÄꤷ¤Þ¤¹¡£
¥×¥í¥°¥é¥à¤¬ÆÃÄê¤Î¥Û¥¹¥È¡¦¥·¥¹¥Æ¥à¾å¤ËºîÀ®¤Ç¤¤ë°ì°Õ¤Î¥³¥¢¡¦¥Õ¥¡¥¤¥ë¤Î¥Ð¡¼¥¸¥ç¥ó¿ô¤òÀ©¸Â¤¹¤ë¤Ë¤Ï¡¤¥×¥í¥»¥¹¡¦¥µ¥Ö¥·¥¹¥Æ¥à°À¤Î
enhanced-core-max-versions
¤òɬÍפÊÃͤËÀßÄꤷ¤Þ¤¹¡£
¼¡¤ÎÎã¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£
proc: enhanced-core-name = 1 enhanced-core-max-versions = 8
¥Ð¡¼¥¸¥ç¥ó¤ÎºÇ¾®ÃÍ¡¤ºÇÂçÃÍ¡¤¾ÊάÃͤϤ½¤ì¤¾¤ì¡¤1¡¤99999¡¤¤ª¤è¤Ó 16 ¤Ç¤¹¡£
5.10.2 ¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¡¦¥ì¥Ù¥ë¤Ç¤Î¥³¥¢¡¦¥Õ¥¡¥¤¥ë¤Î¥Í¡¼¥ß¥ó¥°µ¡Ç½¤Î͸ú²½
¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¡¦¥ì¥Ù¥ë¤Ç¥³¥¢¡¦¥Õ¥¡¥¤¥ë¤Î¥Í¡¼¥ß¥ó¥°¤ò͸ú¤Ë¤¹¤ë¤Ë¤Ï¡¤¼¡¤ÎÎã¤Ë¼¨¤¹¤è¤¦¤Ë¡¤¥×¥í¥°¥é¥à¤Ç
UWS_CORE
¥Õ¥é¥°¤òÀßÄꤷ¤Æ
uswitch
¥·¥¹¥Æ¥à¡¦¥³¡¼¥ë¤ò»ÈÍѤ·¤Þ¤¹¡£
#include <signal.h> #include <xsys/uswitch.h> /* * Request enhanced core-file naming for * this process, then create a core file. */ main() { long uval = uswitch(USC_GET, 0); uval = uswitch(USC_SET, uval | USW_CORE); if (uval < 0) { perror("uswitch"); exit(1); } raise(SIGQUIT); }
5.11 ¼Â¹ÔÃæ¤Î¥×¥í¥»¥¹¤Î¥Ç¥Ð¥Ã¥°
dbx
¥Ç¥Ð¥Ã¥¬¤ò»ÈÍѤ·¤Æ¡¤dbx
´Ä¶¤Î³°¤Ç³«»Ï¤µ¤ì¤¿¼Â¹ÔÃæ¤Î¥×¥í¥»¥¹¤ò¥Ç¥Ð¥Ã¥°¤¹¤ë¤³¤È¤¬¤Ç¤¤Þ¤¹¡£
dbx
¥Ç¥Ð¥Ã¥¬¤Ï¡¤/proc
¥Õ¥¡¥¤¥ë¡¦¥·¥¹¥Æ¥à¤Ë¤è¤Ã¤Æ¤³¤Î¤è¤¦¤Ê¥×¥í¥»¥¹¤Î¥Ç¥Ð¥Ã¥°¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤ª¤ê¡¤¿Æ¥×¥í¥»¥¹¤â»Ò¥×¥í¥»¥¹¤â¥µ¥Ý¡¼¥È¤µ¤ì¤Þ¤¹¡£
¼Â¹ÔÃæ¤Î¥×¥í¥»¥¹¤Î¥Ç¥Ð¥Ã¥°¤Ï¡¤/proc
¥Õ¥¡¥¤¥ë¡¦¥·¥¹¥Æ¥à¤¬¥Þ¥¦¥ó¥È¤µ¤ì¤Æ¤¤¤ë¾ì¹ç¤Ë¤Î¤ß²Äǽ¤Ç¤¹¡£
/proc
¥Õ¥¡¥¤¥ë¡¦¥·¥¹¥Æ¥à¤¬¥Þ¥¦¥ó¥È¤µ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¤Ï¡¤¥¹¡¼¥Ñ¥æ¡¼¥¶¤Ï¼¡¤Î¥³¥Þ¥ó¥É¤ò»ÈÍѤ·¤Æ¥Þ¥¦¥ó¥È¤¹¤ë¤³¤È¤¬¤Ç¤¤Þ¤¹¡£
# mount -t procfs /proc /proc
/etc/fstab
¥Õ¥¡¥¤¥ë¤Ë¼¡¤Î¥¨¥ó¥È¥ê¤òÄɲ乤ë¤È¡¤¥Ö¡¼¥È»þ¤Ë
/proc
¤ò¥Þ¥¦¥ó¥È¤Ç¤¤Þ¤¹¡£
/proc /proc procfs rw 0 0
dbx
¥Ç¥Ð¥Ã¥¬¤Ï¡¤¤Þ¤º
/proc
¤¬¥Þ¥¦¥ó¥È¤µ¤ì¤Æ¤¤¤ë¤«¤É¤¦¤«¤ò¥Á¥§¥Ã¥¯¤·¤Þ¤¹¤¬¡¤¥Þ¥¦¥ó¥È¤µ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¤Ç¤âµ¡Ç½¤·¤Þ¤¹¡£
¼Â¹ÔÃæ¤Î¥×¥í¥»¥¹¤Ë¥¢¥¿¥Ã¥Á¤¹¤ë¤¿¤á¤Ë¤Ï¡¤dbx
¥³¥Þ¥ó¥É¤Î
attach
¤ò»ÈÍѤ·¤Þ¤¹¡£
attach
¥³¥Þ¥ó¥É¤Î¹½Ê¸¤Ï¼¡¤Î¤È¤ª¤ê¤Ç¤¹¡£
attach
process-idprocess-id ¤Ë¤Ï¡¤¥¢¥¿¥Ã¥Á¤¹¤ë¥×¥í¥»¥¹¤Î¥×¥í¥»¥¹ ID ¤ò»ØÄꤷ¤Þ¤¹¡£
¥Ç¥Ð¥Ã¥°¤Î¤¿¤á¤Ë¥×¥í¥»¥¹¤Ë¥¢¥¿¥Ã¥Á¤¹¤ë¤Ë¤Ï¡¤¥³¥Þ¥ó¥É¹Ô¥ª¥×¥·¥ç¥ó¤Î
-pid process id
¤ò»ÈÍѤ¹¤ë¤³¤È¤â¤Ç¤¤Þ¤¹¡£
¼Â¹ÔÃæ¤Î¥×¥í¥»¥¹¤«¤é¥Ç¥¿¥Ã¥Á¤¹¤ë¤Ë¤Ï¡¤dbx
¥³¥Þ¥ó¥É¤Î
detach
¤ò»ÈÍѤ·¤Þ¤¹¡£
¤³¤Î¥³¥Þ¥ó¥É¤Î¹½Ê¸¤Ï¼¡¤Î¤È¤ª¤ê¤Ç¤¹¡£
detach [process-id
]
process-id
¤Ë¤Ï¡¤¥Ç¥¿¥Ã¥Á¤¹¤ë¥×¥í¥»¥¹¤Î¥×¥í¥»¥¹ ID ¤ò»ØÄꤷ¤Þ¤¹¡£
°ú¿ô¤ò¾Êά¤·¤¿¾ì¹ç¤Ï¡¤dbx
¤Ï¸½ºß¤Î¥×¥í¥»¥¹¤ò¥Ç¥¿¥Ã¥Á¤·¤Þ¤¹¡£
¤¢¤ë¥×¥í¥»¥¹¤«¤éÊÌ¤Î¥×¥í¥»¥¹¤ËÊѹ¹¤¹¤ë¾ì¹ç¤Ï¡¤switch
¥³¥Þ¥ó¥É¤ò»ÈÍѤ·¤Þ¤¹¡£
¤³¤Î¥³¥Þ¥ó¥É¤Î¹½Ê¸¤Ï¼¡¤Î¤È¤ª¤ê¤Ç¤¹¡£
switch
process-idprocess-id
¤Ë¤Ï¡¤Êѹ¹Àè¥×¥í¥»¥¹¤Î¥×¥í¥»¥¹ ID ¤ò»ØÄꤷ¤Þ¤¹¡£
Êѹ¹Àè¥×¥í¥»¥¹¤Ï¡¤switch
¥³¥Þ¥ó¥É¤ò»ÈÍѤ¹¤ëÁ°¤Ë¥¢¥¿¥Ã¥Á¤·¤Æ¤ª¤¯É¬Íפ¬¤¢¤ê¤Þ¤¹¡£
switch
¥³¥Þ¥ó¥É¤ËÂФ·¤ÆÊÌ̾
sw
¤ò»ÈÍѤ¹¤ë¤³¤È¤¬¤Ç¤¤Þ¤¹¡£
attach
¥³¥Þ¥ó¥É¤Ï¡¤¤Þ¤º
/proc
¤¬¥Þ¥¦¥ó¥È¤µ¤ì¤Æ¤¤¤ë¤«¤É¤¦¤«¤ò¥Á¥§¥Ã¥¯¤·¤Þ¤¹¡£
¥Þ¥¦¥ó¥È¤µ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¤Ë¤Ï¡¤dbx
¤Ï¼Â¹Ô¤¹¤Ù¤Æ°ºî¤òÄÌÃΤ¹¤ë·Ù¹ð¥á¥Ã¥»¡¼¥¸¤òȯ¹Ô¤·¤Þ¤¹¡£
¥Þ¥¦¥ó¥È¤µ¤ì¤Æ¤¤¤ë¾ì¹ç¤Ë¤Ï¡¤dbx
¤Ï
/proc
¤Ç¥×¥í¥»¥¹ ID ¤òõ¤·¤Þ¤¹¡£
/proc
¤Ç¥×¥í¥»¥¹ ID ¤¬¸«¤Ä¤«¤ë¤È¡¤dbx
¤Ï¥×¥í¥»¥¹¤ò¥ª¡¼¥×¥ó¤·¤Æ¡¤stop
¥³¥Þ¥ó¥É¤òȯ¹Ô¤·¤Þ¤¹¡£
¥×¥í¥»¥¹¤¬¤½¤³¤Ë¤Ê¤¤¾ì¹ç¡¤¤Þ¤¿¤Ï¤½¤Î¥×¥í¥»¥¹¤Ø¤Î¥¢¥¿¥Ã¥Á¤¬µö²Ä¤µ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¤Ë¤Ï¡¤dbx
¤Ï¥¢¥¿¥Ã¥Á¤¬¼ºÇÔ¤·¤¿¤³¤È¤òÄÌÃΤ·¤Þ¤¹¡£
stop
¥³¥Þ¥ó¥É¤¬¼Â¹Ô¤µ¤ì¤ë¤È¡¤dbx
¤Ï¸½ºß¤Î°ÌÃÖ¤òÄÌÃΤ·¤Æ¡¤dbx
¥×¥í¥ó¥×¥È¤òɽ¼¨¤·¡¤¥æ¡¼¥¶¤¬¥³¥Þ¥ó¥É¤òÆþÎϤ¹¤ë¤Î¤òÂÔ¤Á¤Þ¤¹¡£
¥×¥í¥°¥é¥à¤Ï¤ª¤½¤é¤¯¥æ¡¼¥¶¡¦¥³¡¼¥ÉÆâ¤Ç¤Ïľ¤Á¤ËÄä»ß¤µ¤ì¤Þ¤»¤ó¤¬¡¤¥æ¡¼¥¶¡¦¥³¡¼¥É¤«¤é¸Æ¤Ó½Ð¤µ¤ì¤¿¥é¥¤¥Ö¥é¥ê¡¦¥³¡¼¥ë¤Þ¤¿¤Ï¥·¥¹¥Æ¥à¡¦¥³¡¼¥ëÆâ¤ÇÄä»ß¤µ¤ì¤Þ¤¹¡£
detach
¥³¥Þ¥ó¥É¤Ï¸½ºß¤Î¤¹¤Ù¤Æ¤Î¥Ö¥ì¡¼¥¯¥Ý¥¤¥ó¥È¤òºï½ü¤·¤Æ¡¤'run on last close' ¥Õ¥é¥°¤òÀßÄꤷ¡¤¥×¥í¥»¥¹¤ò¥¯¥í¡¼¥º (¥ê¥ê¡¼¥¹) ¤·¤Þ¤¹¡£
dbx
Æâ¤ÇÌÀ¼¨Åª¤Ë½ªÎ»¤µ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¡¤¤½¤Î¸å¥×¥í¥°¥é¥à¤Ï¼Â¹Ô¤ò·Ñ³¤·¤Þ¤¹¡£
dbx
¤ÎÀ©¸æ²¼¤Ë¤¢¤ë¤¹¤Ù¤Æ¤Î¥¢¥¯¥Æ¥£¥Ö¤Ê¥×¥í¥»¥¹¤ò»²¾È¤¹¤ë¤Ë¤Ï¡¤plist
¥³¥Þ¥ó¥É¤ò»ÈÍѤ·¤Þ¤¹¡£
¤³¤Î¥³¥Þ¥ó¥É¤Î¹½Ê¸¤Ï¼¡¤Î¤È¤ª¤ê¤Ç¤¹¡£
plist
¥¢¥¯¥Æ¥£¥Ö¤Ê¥×¥í¥»¥¹¤È¤½¤Î¾õÂÖ¤òɽ¼¨¤·¤Þ¤¹¡£
¸½ºß¤Î¥×¥í¥»¥¹¤ËÂФ·¤Æ¤Ï¡¤Ÿ
¤Î¥Þ¡¼¥«¤¬É½¼¨¤µ¤ì¤Þ¤¹¡£
5.12 ¥Þ¥ë¥Á¥¹¥ì¥Ã¥É¡¦¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Î¥Ç¥Ð¥Ã¥°
dbx
¥Ç¥Ð¥Ã¥¬¤Ï¡¤¥¹¥ì¥Ã¥É¤ò»ÈÍѤ¹¤ë¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Î¥Ç¥Ð¥Ã¥°¤ò»Ù±ç¤¹¤ë¼¡¤Î 3 ¤Ä¤Î´ðËÜ¥³¥Þ¥ó¥É¤ò¥µ¥Ý¡¼¥È¤·¤Þ¤¹¡£
tlist
¥³¥Þ¥ó¥É¤Ï¡¤¤¹¤Ù¤Æ¤Î¥¹¥ì¥Ã¥É¤Î°ìÍ÷¤òɽ¼¨¤·¡¤¤½¤ì¤é¤¬¸½ºß¥×¥í¥°¥é¥à¤Î¤É¤Î°ÌÃ֤ˤ¢¤ë¤«¤òɽ¼¨¤·¤Þ¤¹¡£
¤³¤Î¥³¥Þ¥ó¥É¤Ë¤Ï°ú¿ô¤ÏÉÔÍפǤ¹¡£
tlist
¥³¥Þ¥ó¥É¤ò»ÈÍѤ¹¤ë¤È¡¤¸½ºß¥×¥í¥°¥é¥àÆâ¤Ë¤¢¤ë¤¹¤Ù¤Æ¤Î¥¹¥ì¥Ã¥É¤ò ID ¤È¤È¤â¤Ëɽ¼¨¤¹¤ë¤³¤È¤¬¤Ç¤¤Þ¤¹¡£
tset
¥³¥Þ¥ó¥É¤Ï¸½ºß¤Î¥¹¥ì¥Ã¥É¤òÀßÄꤷ¤Þ¤¹¡£
¥Ç¥Ð¥Ã¥¬¤Ï¡¤1 ¤Ä¤Î¥¹¥ì¥Ã¥É¤ò¸½ºß¤Î¥¹¥ì¥Ã¥É¤È¤·¤ÆÊÝ»ý¤·¤Þ¤¹¡£
¤³¤Î¥¹¥ì¥Ã¥É¤¬¡¤¥Ö¥ì¡¼¥¯¥Ý¥¤¥ó¥È¤Ë¥Ò¥Ã¥È¤·¤¿¤ê¡¤Ää»ß¿®¹æ¤ò¼õ¿®¤·¤Æ¡¤À©¸æ¤ò
dbx
¤Ë°ú¤ÅϤ¹¥¹¥ì¥Ã¥É¤Ç¤¹¡£
tset
¤ò»ÈÍѤ¹¤ë¤È¡¤¸½ºß¤Î¥¹¥ì¥Ã¥É¤È¤·¤Æ°Û¤Ê¤ë¥¹¥ì¥Ã¥É¤òÁªÂò¤·¡¤Ä̾ï¤Î
dbx
¥³¥Þ¥ó¥É¤Ç¾õÂÖ¤ò¸¡ºº¤Ç¤¤ë¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¡£
ÁªÂò¤·¤¿¥¹¥ì¥Ã¥É¤Ï¡¤¼¡¤Ë
tset
¥³¥Þ¥ó¥É¤òÆþÎϤ¹¤ë¤Þ¤Ç¡¤¸½ºß¤Î¥¹¥ì¥Ã¥É¤Ç¤¢¤ë¤³¤È¤ËÃí°Õ¤·¤Æ¤¯¤À¤µ¤¤¡£
¤Þ¤¿¡¤¥Ö¥í¥Ã¥¯¤µ¤ì¤Æ¤¤¤¿¤ê¡¤Ê̤Υ¹¥ì¥Ã¥É¤Ë²Ã¤ï¤ë¤¿¤á¤ËÂÔµ¡¤·¤Æ¤¤¤ë¾ì¹ç¡¤continue
¡¤step
¡¤¤Þ¤¿¤Ï
next
¥³¥Þ¥ó¥É¤Ï¤½¤Î¥¹¥ì¥Ã¥É¤Ë¤Ä¤¤¤ÆÅ¬ÀڤǤϤ¢¤ê¤Þ¤»¤ó¡£
tstack
¥³¥Þ¥ó¥É¤Ï¥¢¥×¥ê¥±¡¼¥·¥ç¥óÆâ¤Î¤¹¤Ù¤Æ¤Î¥¹¥ì¥Ã¥É¤Î¥¹¥¿¥Ã¥¯¤ò¥ê¥¹¥È¤·¤Þ¤¹¡£
¤³¤Î¥³¥Þ¥ó¥É¤Ï
where
¥³¥Þ¥ó¥É¤Ë»÷¤Æ¤¤¤Æ¡¤°ú¿ô¤È¤·¤Æ¿ôÃͤò»ØÄꤹ¤ë¤³¤È¤Ë¤è¤ê¡¤É½¼¨¤¹¤ë¥¹¥¿¥Ã¥¯¡¦¥ì¥Ù¥ë¿ô¤òÀ©¸Â¤¹¤ë¤³¤È¤¬¤Ç¤¤Þ¤¹¡£
tset
¤ª¤è¤Ó
tstack
¥³¥Þ¥ó¥É¤Î·Á¼°¤Ï¼¡¤Î¤È¤ª¤ê¤Ç¤¹¡£
tset [EXP]
¸½ºß¤Î¥¹¥ì¥Ã¥É¤òÁªÂò¤¹¤ë¡£
EXP
°ú¿ô¤Ë¤Ï ID ¤ò 16 ¿Ê¿ô¤Ç»ØÄꤹ¤ë¡£
tstack [EXP]
¤¹¤Ù¤Æ¤Î¥¹¥ì¥Ã¥É¤Î¥¹¥¿¥Ã¥¯¡¦¥È¥ì¡¼¥¹¤òɽ¼¨¤¹¤ë¡£
EXP
¤ò»ØÄꤹ¤ë¤È¡¤dbx
¤Ï¾å°Ì
EXP
¥ì¥Ù¥ë¤Î¥¹¥¿¥Ã¥¯¤Î¤ß¤òɽ¼¨¤¹¤ë¡£
¤³¤Î°ú¿ô¤ò¾Êά¤¹¤ë¤È¡¤¤¹¤Ù¤Æ¤Î¥¹¥¿¥Ã¥¯¤òɽ¼¨¤¹¤ë¡£
¤´»ÈÍѤΥ·¥¹¥Æ¥à¤Ë POSIX Threads Library ¤¬¥¤¥ó¥¹¥È¡¼¥ë¤µ¤ì¤Æ¤¤¤ë¾ì¹ç¤Ï¡¤dbx
¥»¥Ã¥·¥ç¥ó¤Ç
call cma_debug()
¥³¥Þ¥ó¥É¤ò¼Â¹Ô¤¹¤ë¤³¤È¤Ë¤è¤Ã¤Æ¡¤POSIX Threads Library pthread ¥Ç¥Ð¥Ã¥¬¤Ë¥¢¥¯¥»¥¹¤¹¤ë¤³¤È¤¬¤Ç¤¤Þ¤¹¡£
pthread ¥Ç¥Ð¥Ã¥¬¤Ï¡¤¥×¥í¥°¥é¥à¤Î¥¹¥ì¥Ã¥É¤Ë´Ø¤¹¤ë¿¤¯¤ÎÍÍѤʾðÊó¤òÄ󶡤·¤Þ¤¹¡£
pthread ¥Ç¥Ð¥Ã¥¬¤Î»ÈÍÑÊýË¡¤Ë¤Ä¤¤¤Æ¤Ï¡¤debug>
¥×¥í¥ó¥×¥È¤Ç
help
¥³¥Þ¥ó¥É¤òÆþÎϤ·¤Æ¤¯¤À¤µ¤¤¡£
¥µ¥ó¥×¥ë¡¦¥¹¥ì¥Ã¥É¡¦¥×¥í¥°¥é¥à
twait.c
¤òÎã 12-1
¤Ë¼¨¤·¤Æ¤¢¤ê¤Þ¤¹¡£
¼¡¤ÎÎã¤Ç¤Ï¡¤dbx
¥»¥Ã¥·¥ç¥ó¤Ç
twait.c
¤ò»ÈÍѤ·¤Æ¤¤¤Þ¤¹¡£
% dbx twait dbx version 3.11.6 Type 'help' for help. main: 50 pthread_t me = pthread_self(), timer_thread; (dbx) stop in do_tick [2] stop in do_tick (dbx) stop at 85 [3] stop at "twait.c":85 (dbx) stop at 35 [4] stop at "twait.c":35 (dbx) run 1: main thread starting up 1: exit lock initialized 1: exit lock obtained 1: exit cv initialized 1: timer_thread 2 created 1: exit lock released [2] thread 0x81c62e80 stopped at [do_tick:21 ,0x12000730c] pthread_ t me = pthread_self(); (dbx) tlist thread 0x81c623a0 stopped at [msg_receive_trap:74 +0x8,0x3ff808edf04] Source not available thread 0x81c62e80 stopped at [do_tick:21 ,0x12000730c] pthread_ t me = pthread_self(); (dbx) where > 0 do_tick(argP = (nil)) ["twait.c":21, 0x12000730c] 1 cma__thread_base(0x0, 0x0, 0x0, 0x0, 0x0) ["../../../../../src/usr/ ccs/lib/DECthreads/COMMON/cma_thread.c":1441, 0x3ff80931410] (dbx) tset 0x81c623a0 thread 0x81c623a0 stopped at [msg_receive_trap:74 +0x8,0x3ff808edf04] Source not available (dbx) where > 0 msg_receive_trap(0x3ff8087b8dc, 0x3ffc00a2480, 0x3ff8087b928, 0x181 57f0d0d, 0x3ff8087b68c) ["/usr/build/osf1/goldos.bld/export/alpha/usr/in clude/mach/syscall_sw.h":74, 0x3ff808edf00] 1 msg_receive(0x61746164782e, 0x3ffc009a420, 0x3ffc009a420, 0x3c20, 0 xe0420) ["../../../../../src/usr/ccs/lib/libmach/msg.c":95, 0x3ff808e474 4] 2 cma__vp_sleep(0x280187f578, 0x3990, 0x7, 0x3ffc1032848, 0x0) ["../. ./../../../src/usr/ccs/lib/DECthreads/COMMON/cma_vp.c":1471, 0x3ff809375 cc] 3 cma__dispatch(0x7, 0x3ffc1032848, 0x0, 0x3ffc100ee08, 0x3ff80917e3c ) ["../../../../../src/usr/ccs/lib/DECthreads/COMMON/cma_dispatch.c":967 , 0x3ff80920e48] 4 cma__int_wait(0x11ffff228, 0x140009850, 0x3ffc040cdb0, 0x5, 0x3ffc0 014c00) ["../../../../../src/usr/ccs/lib/DECthreads/COMMON/cma_condition .c":2202, 0x3ff80917e38] 5 cma_thread_join(0x11ffff648, 0x11ffff9f0, 0x11ffff9e8, 0x60aaec4, 0 x3ff8000cf38) ["../../../../../src/usr/ccs/lib/DECthreads/COMMON/cma_thr ead.c":825, 0x3ff80930a58] 6 pthread_join(0x140003110, 0x40002, 0x11ffffa68, 0x3ffc040cdb0, 0x0) ["../../../../../src/usr/ccs/lib/DECthreads/COMMON/cma_pthread.c":2193, 0x3ff809286c8] 7 main() ["twait.c":81, 0x12000788c] (dbx) tlist thread 0x81c623a0 stopped at [msg_receive_trap:74 +0x8,0x3ff808edf04] Source not available thread 0x81c62e80 stopped at [do_tick:21 ,0x12000730c] pthread_ t me = pthread_self(); (dbx) tset 0x81c62e80 thread 0x81c62e80 stopped at [do_tick:21 ,0x12000730c] pthread_ t me = pthread_self(); (dbx) cont 2: timer thread starting up, argP=0x0 [4] thread 0x81c62e80 stopped at [do_tick:35 ,0x120007430] printf(" %d: wait for next tick\n", THRID(&me)); (dbx) cont 2: wait for next tick 2: TICK #1 [4] thread 0x81c62e80 stopped at [do_tick:35 ,0x120007430] printf(" %d: wait for next tick\n", THRID(&me)); (dbx) tstack Thread 0x81c623a0: > 0 msg_receive_trap(0x3ff8087b8dc, 0x3ffc00a2480, 0x3ff8087b928, 0x181 57f0d0d, 0x3ff8087b68c) ["/usr/build/osf1/goldos.bld/export/alpha/usr/in clude/mach/syscall_sw.h":74, 0x3ff808edf00] 1 msg_receive(0x61746164782e, 0x3ffc009a420, 0x3ffc009a420, 0x3c20, 0 xe0420) ["../../../../../src/usr/ccs/lib/libmach/msg.c":95, 0x3ff808e474 4] 2 cma__vp_sleep(0x280187f578, 0x3990, 0x7, 0x3ffc1032848, 0x0) ["../. ./../../../src/usr/ccs/lib/DECthreads/COMMON/cma_vp.c":1471, 0x3ff809375 cc] 3 cma__dispatch(0x7, 0x3ffc1032848, 0x0, 0x3ffc100ee08, 0x3ff80917e3c ) ["../../../../../src/usr/ccs/lib/DECthreads/COMMON/cma_dispatch.c":967 , 0x3ff80920e48] 4 cma__int_wait(0x11ffff228, 0x140009850, 0x3ffc040cdb0, 0x5, 0x3ffc0 014c00) ["../../../../../src/usr/ccs/lib/DECthreads/COMMON/cma_condition .c":2202, 0x3ff80917e38] 5 cma_thread_join(0x11ffff648, 0x11ffff9f0, 0x11ffff9e8, 0x60aaec4, 0 x3ff8000cf38) ["../../../../../src/usr/ccs/lib/DECthreads/COMMON/cma_thr ead.c":825, 0x3ff80930a58] 6 pthread_join(0x140003110, 0x40002, 0x11ffffa68, 0x3ffc040cdb0, 0x0) ["../../../../../src/usr/ccs/lib/DECthreads/COMMON/cma_pthread.c":2193, 0x3ff809286c8] 7 main() ["twait.c":81, 0x12000788c] Thread 0x81c62e80: > 0 do_tick(argP = (nil)) ["twait.c":35, 0x120007430] 1 cma__thread_base(0x0, 0x0, 0x0, 0x0, 0x0) ["../../../../../src/usr/ ccs/lib/DECthreads/COMMON/cma_thread.c":1441, 0x3ff80931410] More (n if no)? (dbx) tstack 3 Thread 0x81c623a0: > 0 msg_receive_trap(0x3ff8087b8dc, 0x3ffc00a2480, 0x3ff8087b928, 0x181 57f0d0d, 0x3ff8087b68c) ["/usr/build/osf1/goldos.bld/export/alpha/usr/in clude/mach/syscall_sw.h":74, 0x3ff808edf00] 1 msg_receive(0x61746164782e, 0x3ffc009a420, 0x3ffc009a420, 0x3c20, 0 xe0420) ["../../../../../src/usr/ccs/lib/libmach/msg.c":95, 0x3ff808e474 4] 2 cma__vp_sleep(0x280187f578, 0x3990, 0x7, 0x3ffc1032848, 0x0) ["../. ./../../../src/usr/ccs/lib/DECthreads/COMMON/cma_vp.c":1471, 0x3ff809375 cc] Thread 0x81c62e80: > 0 do_tick(argP = (nil)) ["twait.c":35, 0x120007430] 1 cma__thread_base(0x0, 0x0, 0x0, 0x0, 0x0) ["../../../../../src/usr/ ccs/lib/DECthreads/COMMON/cma_thread.c":1441, 0x3ff80931410] (dbx) cont 2: wait for next tick 2: TICK #2 [4] thread 0x81c62e80 stopped at [do_tick:35 ,0x120007430] printf(" %d: wait for next tick\n", THRID(&me)); (dbx) assign ticks = 29 29 (dbx) cont 2: wait for next tick 2: TICK #29 [4] thread 0x81c62e80 stopped at [do_tick:35 ,0x120007430] printf(" %d: wait for next tick\n", THRID(&me)); (dbx) cont 2: wait for next tick 2: TICK #30 2: exiting after #31 ticks 1: joined with timer_thread 2 [3] thread 0x81c623a0 stopped at [main:85 ,0x1200078ec] if (errn o != 0) printf("errno 7 = %d\n",errno); (dbx) tlist thread 0x81c623a0 stopped at [main:85 ,0x1200078ec] if (errno != 0) printf("errno 7 = %d\n",errno); thread 0x81c62e80 stopped at [msg_rpc_trap:75 +0x8,0x3ff808edf10] Source not available (dbx) cont Program terminated normally (dbx) tlist (dbx) quit
5.13 Ê£¿ô¤ÎÈ󯱴ü¥×¥í¥»¥¹¤Î¥Ç¥Ð¥Ã¥°
dbx
¥Ç¥Ð¥Ã¥¬¤ÇÊ£¿ô¤ÎÈ󯱴ü¥×¥í¥»¥¹¤ò¥Ç¥Ð¥Ã¥°¤¹¤ë¤³¤È¤¬¤Ç¤¤Þ¤¹¡£
È󯱴ü¥×¥í¥»¥¹¤ò¥Ç¥Ð¥Ã¥°¤·¤Æ¤¤¤ë´Ö¡¤dbx
¤Ï¾õÂÖ¤òɽ¼¨¤·¤Æ¡¤È󯱴ü¤Ë¥³¥Þ¥ó¥É¤ò¼õ¤±Æþ¤ì¤ë¤³¤È¤¬¤Ç¤¤Þ¤¹¡£
È󯱴ü¤Ë¼Â¹Ô¤·¤Æ¤¤¤ë¤È¡¤¥Ç¥Ð¥Ã¥¬¤Îưºî¤¬º®Í𤷤Ƥ¤¤ë¤è¤¦¤Ë¸«¤¨¤ë¤³¤È¤¬¤¢¤ê¤Þ¤¹¡£
¤³¤ì¤Ï¡¤Ää»ß¤·¤Æ¤¤¤ëÊÌ¤Î¥×¥í¥»¥¹¤òÄ´¤Ù¤ë¥³¥Þ¥ó¥É¤òÆþÎϤ·¤Æ¤¤¤ë¤È¤¤Ë¡¤¼Â¹Ô¥×¥í¥»¥¹¤¬½ÐÎϤò²èÌ̤Ëɽ¼¨¤¹¤ë¤³¤È¤¬¤¢¤ë¤¿¤á¤Ç¤¹¡£
¼¡¤Î¤¤¤º¤ì¤«¤Î¾õ¶·¤Î¾ì¹ç¡¤¥Ç¥Ð¥Ã¥¬¤Ï¼«Æ°Åª¤ËÈ󯱴ü¥â¡¼¥É¤Ë¤Ê¤ê¤Þ¤¹¡£
°ÊÁ°¤Î¥×¥í¥»¥¹¤¬¤Þ¤À¥¢¥¿¥Ã¥Á¤µ¤ì¤Æ¤¤¤ë¤È¤¤Ë¡¤¿·¤·¤¤¥×¥í¥»¥¹¤Ë¥¢¥¿¥Ã¥Á¤¹¤ë¤è¤¦¤ËÌ¿¤¸¤¿¾ì¹ç
dbx
¤¬¥¢¥¿¥Ã¥Á¤·¤Æ¤¤¤ë¥×¥í¥»¥¹¤¬»Ò¥×¥í¥»¥¹¤Ë¥Õ¥©¡¼¥¯¤·¤Æ¡¤¥Ç¥Ð¥Ã¥¬¤¬¿Æ¥×¥í¥»¥¹¤«¤é¥Ç¥¿¥Ã¥Á¤»¤º¤Ë¤½¤Î»Ò¥×¥í¥»¥¹¤Ë¼«Æ°Åª¤Ë¥¢¥¿¥Ã¥Á¤·¤¿¾ì¹ç
¥Ç¥Ð¥Ã¥¬¤Ï¡¤Â¿¿ô¤ÎÄêµÁºÑ¤ßÊÑ¿ô¤ò»ÈÍѤ·¤Æ¡¤È󯱴ü¥Ç¥Ð¥Ã¥°¤Îưºî¤òÄêµÁ¤·¤Þ¤¹ (ɽ 5-8
¤ò»²¾È)¡£
ÊÑ¿ô
$asynch_interface
¤Ï¡¤¥«¥¦¥ó¥¿¤È¤·¤Æ¤â¸«¤ë¤³¤È¤¬¤Ç¤¡¤¿·¤·¤¤¥×¥í¥»¥¹¤¬¥¢¥¿¥Ã¥Á¤µ¤ì¤ë¤È 1 ¤À¤±Áý²Ã¤·¡¤¥×¥í¥»¥¹¤¬½ªÎ»¤¹¤ë¤«¥Ç¥¿¥Ã¥Á¤µ¤ì¤ë¤È 1 ¤À¤±¸º¾¯¤·¤Þ¤¹¡£
¾Êά»þ¤ÎÀßÄê¤Ï 0 ¤Ç¤¹¡£
$asynch_interface
¤ÎÃͤ¬Àµ¤ÇÈó¥¼¥í¤Î¾ì¹ç¡¤È󯱴ü¥Ç¥Ð¥Ã¥¬¤Ï»ÈÍѲÄǽ¤Ç¤¢¤ê¡¤ÊÑ¿ô¤ÎÃͤ¬ 0 (¥¼¥í) ¤Þ¤¿¤ÏÉé¤Î¾ì¹ç¡¤È󯱴ü¥Ç¥Ð¥Ã¥¬¤Ï»ÈÍÑÉÔǽ¤Ç¤¹¡£
dbx
¤¬È󯱴ü¥â¡¼¥É¤Ë¤Ê¤ë¤Î¤òËɤ°¤Ë¤Ï¡¤$asynch_interface
ÊÑ¿ô¤ËÉé¤ÎÃͤòÀßÄꤷ¤Þ¤¹¡£
¤¿¤À¤·¡¤Ää»ß¤µ¤ì¤Æ¤¤¤ë»Ò¤ò¿Æ¤¬ÂԤäƤ¤¤ë¾ì¹ç¤Ë¤Ï¡¤È󯱴ü¥â¡¼¥É¤ò»ÈÍÑÉÔǽ¤Ë¤¹¤ë¤È¡¤¥Ç¥Ð¥Ã¥°¤¬¤è¤êº¤Æñ¤Ë¤Ê¤ê¤Þ¤¹¡£
¥×¥í¥»¥¹¤¬
fork()
¤Þ¤¿¤Ï
vfork()
¸Æ¤Ó½Ð¤·¤ò¼Â¹Ô¤¹¤ë¤È¡¤dbx
¤Ï»Ò¥×¥í¥»¥¹¤Ë¥¢¥¿¥Ã¥Á¤·¤Æ¡¤¼«Æ°Åª¤ËÈ󯱴ü¥â¡¼¥É¤Ë¤Ê¤ê¤Þ¤¹ ($asynch_interface
¤Çµö²Ä¤µ¤ì¤Æ¤¤¤ë¾ì¹ç)¡£
¾Êά»þ¤Îưºî¤Ç¤Ï¡¤¥Õ¥©¡¼¥¯¤·¤¿¸å¡¤Ä¾¤Á¤Ë»Ò¥×¥í¥»¥¹¤òÄä»ß¤·¤Þ¤¹¡£
ÊÑ¿ô
$stop_on_fork
¤ò 0 ¤ËÀßÄꤹ¤ë¤È¡¤¤³¤Î¾Êά»þ¤ÎÀßÄê¤òÊѹ¹¤¹¤ë¤³¤È¤¬¤Ç¤¤Þ¤¹¡£
¤³¤Î¾ì¹ç¡¤dbx
¤Ï»Ò¥×¥í¥»¥¹¤Ë¥¢¥¿¥Ã¥Á¤·¤Þ¤¹¤¬¡¤¤½¤ì¤òÄä»ß¤µ¤ì¤ë¤³¤È¤Ï¤¢¤ê¤Þ¤»¤ó¡£
dbx
¥Ç¥Ð¥Ã¥¬¤Ï¡¤¤µ¤Þ¤¶¤Þ¤Ê¥·¥¹¥Æ¥à¡¦¥³¡¼¥ë¤ª¤è¤Ó¥é¥¤¥Ö¥é¥ê¡¦¥³¡¼¥ë¤Ë¤è¤Ã¤Æ¹Ô¤ï¤ì¤¿¥Õ¥©¡¼¥¯¸Æ¤Ó½Ð¤·¤Î¿¤¯¤Ë¥Õ¥£¥ë¥¿¤ò¤«¤±¤ë¤³¤È¤Ë¤è¤ê¡¤¥Õ¥©¡¼¥¯¤Î½èÍý¤Ë¥¤¥ó¥Æ¥ê¥¸¥§¥ó¥¹ÅÙ¤òŬÍѤ·¤è¤¦¤È¤·¤Þ¤¹¡£
¤³¤ì¤é¤Î¥Õ¥©¡¼¥¯¤Ç¥×¥í¥»¥¹¤òÄä»ß¤µ¤»¤ë¾ì¹ç¤Ë¤â¡¤ÄêµÁºÑ¤ßÊÑ¿ô
$stop_all_forks
¤ò 1 ¤ËÀßÄꤷ¤Þ¤¹¡£
¤³¤ÎÊÑ¿ô¤Î¾Êά»þ¤ÎÃÍ¤Ï 0 ¤Ç¤¹¡£
¥é¥¤¥Ö¥é¥ê¡¦¥ë¡¼¥Á¥ó¤ò¥Ç¥Ð¥Ã¥°¤·¤Æ¤¤¤ëºÝ¤Ë¤Ï¡¤¤¹¤Ù¤Æ¤Î¥Õ¥©¡¼¥¯¤ÇÄä»ß¤µ¤»¤ë¤³¤È¤ÏÆÃ¤Ë͸ú¤Ç¤¹¡£
¥Ç¥Ð¥Ã¥¬¤Î
plist
¤ª¤è¤Ó
switch
¥³¥Þ¥ó¥É¤ò»ÈÍѤ¹¤ë¤È¡¤¥×¥í¥»¥¹´Ö¤Î¥â¥Ë¥¿¤ª¤è¤ÓÀÚ¤êÂØ¤¨¤ò¹Ô¤¦¤³¤È¤¬¤Ç¤¤Þ¤¹¡£
5.14 ¥µ¥ó¥×¥ë¡¦¥×¥í¥°¥é¥à
Îã 5-1
¤Î¥µ¥ó¥×¥ë C ¥×¥í¥°¥é¥à (sam.c
) ¤Ï¡¤¤³¤Î¾Ï¤Î¤¤¤¯¤Ä¤«¤Î¥³¥Þ¥ó¥É»ÈÍÑÎã¤Ç°úÍѤ·¤Æ¤¤¤ë¥×¥í¥°¥é¥à¤Ç¤¹¡£
Îã 5-1: dbx ¤ÎÎã¤Ç»ÈÍѤµ¤ì¤Æ¤¤¤ë¥µ¥ó¥×¥ë¡¦¥×¥í¥°¥é¥à
#include <stdio.h> struct line { char string[256]; int length; int linenumber; }; typedef struct line LINETYPE; void prnt(); main(argc,argv) int argc; char **argv; { LINETYPE line1; FILE *fd; extern FILE *fopen(); extern char *fgets(); extern char *getenv(); char *fname; int i; static curlinenumber=0; if (argc < 2) { if((fname = getenv("TEXT")) == NULL || *fname == ' ') { fprintf(stderr, "Usage: sam filename\n"); exit(1); } } else fname = argv[1]; fd = fopen(fname,"r"); if (fd == NULL) { fprintf(stderr, "cannot open %s\n",fname); exit(1); } while(fgets(line1.string, sizeof(line1.string), fd) != NULL){ i=strlen(line1.string); if (i==1 && line1.string[0] == '\n') continue; line1.length = i; line1.linenumber = curlinenumber++; prnt(&line1); } } void prnt(pline) LINETYPE *pline; { fprintf(stdout,"%3d. (%3d) %s", pline->linenumber, pline->length, pline->string); fflush(stdout); }