5    dbx ¤Ë¤è¤ë¥×¥í¥°¥é¥à¤Î¥Ç¥Ð¥Ã¥°

dbx ¥Ç¥Ð¥Ã¥¬¤Ï¡¤¥³¥Þ¥ó¥É¹Ô¥×¥í¥°¥é¥à¤Ç¤¹¡£ ¤³¤ì¤Ï¡¤¥½¡¼¥¹¡¦¥³¡¼¥É¡¦¥ì¥Ù¥ë¤ª¤è¤Óµ¡³£¸ì¥³¡¼¥É¡¦¥ì¥Ù¥ë¤Î¥×¥í¥°¥é¥à¡¦¥Ç¥Ð¥Ã¥°ÍѤΥġ¼¥ë¤Ç¤¢¤ê¡¤C ¸À¸ì¡¤Fortran¡¤Pascal¡¤¥¢¥»¥ó¥Ö¥ê¸À¸ì¤Ç»ÈÍѤ¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£ dbx ¤òµ¯Æ°¤·¤¿¸å¤Ë¡¤dbx ¥³¥Þ¥ó¥É¤òÆþÎϤ·¤Æ¼Â¹Ô¤ÎÀ©¸æ¤ª¤è¤Ó¥È¥ì¡¼¥¹¡¤ÊÑ¿ô¤ª¤è¤Ó¼°¤ÎÃͤÎɽ¼¨¡¤¥½¡¼¥¹¡¦¥Õ¥¡¥¤¥ë¤Îɽ¼¨¤ª¤è¤ÓÊÔ½¸¤ò¹Ô¤¦¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£

ÂåÂØ¥Ç¥Ð¥Ã¥¬¤Î ladebug ¥Ç¥Ð¥Ã¥¬¤Ï¡¤¥³¥Þ¥ó¥É¹Ô¤ª¤è¤Ó¥°¥é¥Õ¥£¥«¥ë¡¦¥æ¡¼¥¶¡¦¥¤¥ó¥¿¥Õ¥§¡¼¥¹ (GUI) ¤ÎξÊý¤òÄ󶡤·¤Æ¤¤¤Þ¤¹¡£ dbx ¤Ç¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤Ê¤¤¸À¸ì¤ò¤¤¤¯¤Ä¤«¥µ¥Ý¡¼¥È¤¹¤ë¤È¤È¤â¤Ë¡¤ladebug ¥Ç¥Ð¥Ã¥¬¤Ç¤Ï¥Þ¥ë¥Á¥¹¥ì¥Ã¥É¡¦¥×¥í¥°¥é¥à¤Î¥Ç¥Ð¥Ã¥°µ¡Ç½¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤Þ¤¹¡£ ladebug ¤Ë¤Ä¤¤¤Æ¤Î¾ÜºÙ¤Ï¡¤¡ØLadebug Debugger Manual¡Ù¤Þ¤¿¤Ï ladebug(1) ¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£

¤³¤Î¾Ï¤Ç¤Ï¡¤¼¡¤Î¹àÌܤˤĤ¤¤ÆÀâÌÀ¤ò¹Ô¤¤¤Þ¤¹¡£

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] 
 
 

  1. ºÇ¸å¤Ë¸Æ¤Ó½Ð¤µ¤ì¤¿¥×¥í¥·¡¼¥¸¥ã¤Ï prnt ¤Ç¤¹¡£ prnt ¤Î¥¢¥¯¥Æ¥£¥Ö²½¥ì¥Ù¥ë¤Ï 0 ¤Ê¤Î¤Ç¡¤¤³¤Î´Ø¿ô¤Ï¥¹¥¿¥Ã¥¯¤ÎºÇ¾å°Ì¤Ë¤¢¤ê¤Þ¤¹¡£ [Îã¤ËÌá¤ë]

  2. ¥á¥¤¥ó¡¦¥×¥í¥°¥é¥à¤Ï main ¤Ç¤¹¡£ [Îã¤ËÌá¤ë]

  3. ¥¢¥¯¥Æ¥£¥Ö²½¥ì¥Ù¥ëÈÖ¹æ

    > ¤Ï¡¤¸½ºßÄ´ººÃæ¤Î¥¢¥¯¥Æ¥£¥Ö²½¥ì¥Ù¥ë¤ò¼¨¤·¤Þ¤¹¡£ [Îã¤ËÌá¤ë]

  4. ¥×¥í¥·¡¼¥¸¥ã̾ [Îã¤ËÌá¤ë]

  5. ¥×¥í¥·¡¼¥¸¥ã¤Î°ú¿ô [Îã¤ËÌá¤ë]

  6. ¥½¡¼¥¹¡¦¥Õ¥¡¥¤¥ë̾ [Îã¤ËÌá¤ë]

  7. ¸½ºß¤Î¹ÔÈÖ¹æ [Îã¤ËÌá¤ë]

  8. ¸½ºß¤Î¥×¥í¥°¥é¥à¡¦¥«¥¦¥ó¥¿ [Îã¤ËÌá¤ë]

5.1.3    ¥×¥í¥°¥é¥à¼Â¹Ô¾ã³²²Õ½ê¤ÎÆÃÄê

dbx ¥Ç¥Ð¥Ã¥¬¤Ï¡¤¼Â¹Ô»þ¥¨¥é¡¼¤À¤±¤ò¸¡½Ð¤¹¤ë¤¿¤á¡¤¥Ç¥Ð¥Ã¥°¡¦¥»¥Ã¥·¥ç¥ó¤ò³«»Ï¤¹¤ëÁ°¤Ë¡¤¥³¥ó¥Ñ¥¤¥é¡¦¥¨¥é¡¼¤òÄûÀµ¤¹¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£ ¼Â¹Ô»þ¥¨¥é¡¼¤È¤Ï¡¤¥×¥í¥°¥é¥à¤¬¡¤¥³¥¢¡¦¥Õ¥¡¥¤¥ë¤òºîÀ®¤·¤Æ¤·¤Þ¤¦¤è¤¦¤Ê¼Â¹ÔÃæ¤Î¾ã³²¡¤¤Þ¤¿¤ÏÉÔÀµ¤Ê¼Â¹Ô·ë²Ì¤ÎºîÀ®¤Ë¤Ä¤Ê¤¬¤ë¤â¤Î¤Ç¤¹¡£ ¼Â¹Ô»þ¤Ë°Û¾ï½ªÎ»¤¹¤ë¥×¥í¥°¥é¥à¤ò¥Ç¥Ð¥Ã¥°¤¹¤ëÊýË¡¤È¡¤½ªÎ»¤Þ¤Ç¼Â¹Ô¤Ï¤¹¤ë¤¬¡¤ÉÔÀµ¤Ê¼Â¹Ô·ë²Ì¤ò½ÐÎϤ¹¤ë¥×¥í¥°¥é¥à¤ò¥Ç¥Ð¥Ã¥°¤¹¤ëÊýË¡¤Ï°Û¤Ê¤ê¤Þ¤¹¡£ ÉÔÀµ¤Ê¼Â¹Ô·ë²Ì¤òºîÀ®¤¹¤ë¥×¥í¥°¥é¥à¤ò¥Ç¥Ð¥Ã¥°¤¹¤ëÊýË¡¤Ë¤Ä¤¤¤Æ¤Ï¡¤5.1.4 ¹à¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£

¼Â¹Ô»þ¤Ë¥×¥í¥°¥é¥à¤¬°Û¾ï½ªÎ»¤¹¤ë¾ì¹ç¤Ë¤Ï¡¤1 ¹Ô¤º¤Ä¥Ç¥Ð¥Ã¥°¤¹¤ë¤Î¤Ç¤Ï¤Ê¤¯¡¤¼¡¤ÎÊýË¡¤ò»ÈÍѤ·¤Æ¥Ç¥Ð¥Ã¥°¡¦¥»¥Ã¥·¥ç¥ó¤ò³«»Ï¤¹¤ë¤È¡¤Ä̾ï¤Ï»þ´Ö¤òÀáÌ󤹤뤳¤È¤¬¤Ç¤­¤Þ¤¹¡£

  1. dbx ¤«¤é¥×¥í¥°¥é¥à¤ò¸Æ¤Ó½Ð¤¹¡£

    dbx ¥³¥Þ¥ó¥É¹Ô¤Ç¡¤Å¬Àڤʥª¥×¥·¥ç¥ó¡¤¼Â¹Ô²Äǽ¥Õ¥¡¥¤¥ë¡¤¤ª¤è¤Ó¥³¥¢¡¦¥À¥ó¥×¡¦¥Õ¥¡¥¤¥ë¤ò»ØÄꤷ¤Þ¤¹¡£

  2. where ¥³¥Þ¥ó¥É¤ò»ÈÍѤ·¤Æ¥¹¥¿¥Ã¥¯¡¦¥È¥ì¡¼¥¹¤ò¹Ô¤¤¡¤¾ã³²¤Î°ÌÃÖ¤òÆÃÄꤹ¤ë¡£

    Ãí°Õ

    ¥ª¥Ö¥¸¥§¥¯¥È¡¦¥Õ¥¡¥¤¥ë¤«¤é¥·¥ó¥Ü¥ë¡¦¥Æ¡¼¥Ö¥ë¤Î¾ðÊó¤òºï½ü¤·¤Æ¤¤¤Ê¤¤¾ì¹ç¤Ï¡¤Åö³º¥×¥í¥°¥é¥à¤¬ -g ¥Ç¥Ð¥Ã¥°¡¦¥ª¥×¥·¥ç¥ó¤Ç¥³¥ó¥Ñ¥¤¥ë¤µ¤ì¤Æ¤¤¤Ê¤¯¤Æ¤â¡¤¥¹¥¿¥Ã¥¯¡¦¥È¥ì¡¼¥¹¤ò¹Ô¤¦¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£

  3. stop ¤¢¤ë¤¤¤Ï stopi ¥³¥Þ¥ó¥É¤ò»ÈÍѤ·¤Æ¥Ö¥ì¡¼¥¯¥Ý¥¤¥ó¥È¤òÀßÄꤷ¡¤¥¨¥é¡¼¤òʬΥ¤¹¤ë¡£

  4. print ¥³¥Þ¥ó¥É¤ò»ÈÍѤ·¤ÆÊÑ¿ô¤ÎÃͤòɽ¼¨¤·¡¤ÊÑ¿ô¤ËÉÔÀµ¤ÊÃͤ¬³ä¤êÅö¤Æ¤é¤ì¤¿²Õ½ê¤òÄ´¤Ù¤ë¡£

¤³¤Î»þÅÀ¤Ç¤Þ¤À¥¨¥é¡¼¤òȯ¸«¤Ç¤­¤Ê¤¤¾ì¹ç¤Ë¤Ï¡¤¤³¤Î¾Ï¤ÇÀâÌÀ¤·¤Æ¤¤¤ë¾¤Î dbx ¥³¥Þ¥ó¥É¤ò»ÈÍѤ·¤Æ¤¯¤À¤µ¤¤¡£

5.1.4    ÉÔÀµ¤Î½ÐÎÏ·ë²Ì¤Î¸¶°øÊ¬ÀÏ

¥×¥í¥°¥é¥à¤¬½ªÎ»¤Þ¤Ç¼Â¹Ô¤·¤Æ¤â¡¤ÉÔÀµ¤ÊÃͤޤ¿¤Ï½ÐÎϤ¬À¸À®¤µ¤ì¤ë¾ì¹ç¤Ë¤Ï¡¤¼¡¤Î¼ê½ç¤Ë½¾¤Ã¤Æ¤¯¤À¤µ¤¤¡£

  1. ÌäÂ꤬ȯÀ¸¤·¤Æ¤¤¤ë¤È¹Í¤¨¤é¤ì¤ë°ÌÃÖ¡¤¤¿¤È¤¨¤ÐÉÔÀµ¤ÊÃͤޤ¿¤Ï½ÐÎϤΥǡ¼¥¿¤òÀ¸À®¤¹¤ë²Õ½ê¤Î¥³¡¼¥É¤Ë¥Ö¥ì¡¼¥¯¥Ý¥¤¥ó¥È¤òÀßÄꤹ¤ë¡£

  2. ¥×¥í¥°¥é¥à¤ò¼Â¹Ô¤¹¤ë¡£

  3. where ¥³¥Þ¥ó¥É¤ò»ÈÍѤ·¤Æ¡¤¥¹¥¿¥Ã¥¯¡¦¥È¥ì¡¼¥¹¤ò¹Ô¤¦¡£

  4. print ¥³¥Þ¥ó¥É¤ò»ÈÍѤ·¤Æ¡¤ÌäÂ꤬¤¢¤ë¤È¹Í¤¨¤é¤ì¤ëÊÑ¿ô¤ÎÃͤòɽ¼¨¤¹¤ë¡£

  5. ÌäÂ꤬ȯ¸«¤µ¤ì¤ë¤Þ¤Ç¡¤¼ê½ç 1 °Ê¹ß¤ò·«¤êÊÖ¤¹¡£

5.1.5    ¼Â¹Ô¥×¥í¥»¥¹¤Î¥³¥¢¡¦¥¹¥Ê¥Ã¥×¥·¥ç¥Ã¥È¤ÎºîÀ®

°Û¾ï½ªÎ»¤äÉÔÀµ¤Ê·ë²Ì¤ò½ÐÎϤ·¤Ê¤¤¥×¥í¥°¥é¥à¤Ç¤â¡¤Àµ¾ï¤Ëưºî¤·¤Æ¤¤¤Ê¤¤¾ì¹ç¤¬¤¢¤ê¤Þ¤¹¡£ ¤¿¤È¤¨¤Ð¼¡¤Î¤è¤¦¤Ê¾ì¹ç¤Ç¤¹¡£

¤Þ¤¿¡¤¥×¥í¥°¥é¥à¤¬Ìµ¸Â¥ë¡¼¥×¤ËÆþ¤ë¤³¤È¤â¤¢¤ê¤Þ¤¹¡£

¤³¤Î¤è¤¦¤Ê¾ì¹ç¡¤¥×¥í¥°¥é¥à¤Î¼Â¹Ô¤òÄä»ß¤»¤º¤Ë¾õÂÖ¤òÄ´¤Ù¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£ coredump ¥³¥Þ¥ó¥É¤ò»ÈÍѤ¹¤ë¤È¡¤¼Â¹ÔÃæ¤Î¥×¥í¥»¥¹¤Î¥³¥¢¡¦¥¹¥Ê¥Ã¥×¥·¥ç¥Ã¥È¤òºîÀ®¤Ç¤­¤Þ¤¹¡£ ¾Êά»þ¡¤¥³¥¢¡¦¥¹¥Ê¥Ã¥×¥·¥ç¥Ã¥È¡¦¥Õ¥¡¥¤¥ë¤Ï¸½¹Ô¥Ç¥£¥ì¥¯¥È¥ê¤ËºîÀ®¤µ¤ì¡¤Ì¾Á°¤Ï corefile ¤Ë¤Ê¤ê¤Þ¤¹¡£ dbx ¤ò»ÈÍѤ¹¤ë¤È¡¤5.2.3 ¹à ¤Ç¤ÎÀâÌÀ¤É¤ª¤ê¤Ë¥³¥¢¡¦¥¹¥Ê¥Ã¥×¥·¥ç¥Ã¥È¤òÄ´¤Ù¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£ ¾ÜºÙ¤Ï coredump(1) ¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£

5.1.6    ¾ã³²¤Î²óÈò

¥Ç¥Ð¥Ã¥¬¤Ç¤¹¤Ù¤Æ¤ÎÌäÂ꤬²ò·è¤µ¤ì¤ë¤È¤Ï¸Â¤ê¤Þ¤»¤ó¡£ ¤¿¤È¤¨¤Ð¡¤¥×¥í¥°¥é¥à¤ËÏÀÍý¥¨¥é¡¼¤¬¤¢¤ë¾ì¹ç¤Ë¤Ï¡¤¥Ç¥Ð¥Ã¥¬¤ÏÌäÂê¤Îȯ¸«¤Ë¤ÏÍøÍѤǤ­¤Þ¤¹¤¬¡¤²ò·è¤Ï¤Ç¤­¤Þ¤»¤ó¡£ ¥Ç¥Ð¥Ã¥¬¤Ë¤è¤êɽ¼¨¤µ¤ì¤ë¾ðÊ󤬺®Í𤷤Ƥ¤¤¿¤ê´Ö°ã¤Ã¤Æ¤¤¤ë¤è¤¦¤Ê¾ì¹ç¤Ë¤Ï¡¤¼¡¤Î¤è¤¦¤Ê½èÍý¤Ç¤½¤Î¾õ¶·¤òÄûÀµ¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£

5.2    dbx ¤Î¼Â¹Ô

dbx ¤ò¸Æ¤Ó½Ð¤¹Á°¤Ë¡¤¥Ç¥Ð¥Ã¥°ÍÑ¤Ë¥×¥í¥°¥é¥à¤ò¥³¥ó¥Ñ¥¤¥ë¤¹¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£ ¥Ç¥Ð¥Ã¥¬µ¯Æ°»þ¤Ë³Æ dbx ¥³¥Þ¥ó¥É¤ò¼Â¹Ô¤¹¤ë dbx ½é´ü²½¥Õ¥¡¥¤¥ë¤òºîÀ®¤¹¤ë¤³¤È¤â¤Ç¤­¤Þ¤¹¡£

5.2.1    ¥Ç¥Ð¥Ã¥°ÍÑ¥×¥í¥°¥é¥à¤Î¥³¥ó¥Ñ¥¤¥ë

¥Ç¥Ð¥Ã¥¬ÍÑ¤Ë¥×¥í¥°¥é¥à¤Î½àÈ÷¤ò¤¹¤ë¤Ë¤Ï¡¤¥³¥ó¥Ñ¥¤¥ë»þ¤Ë -g ¥ª¥×¥·¥ç¥ó¤ò»ØÄꤷ¤Þ¤¹¡£ ¤³¤Î¥ª¥×¥·¥ç¥ó¤Ë¤è¤ê¡¤¥·¥ó¥Ü¥ë¡¦¥Æ¡¼¥Ö¥ë¾ðÊó¤¬ dbx ¥×¥í¥°¥é¥à¤ËÆÉ¤ß¹þ¤Þ¤ì¡¤ºÇŬ²½¥ì¥Ù¥ë¤ò -O0 ¤ËÀßÄꤷ¤Þ¤¹¡£ dbx ¥Ç¥Ð¥Ã¥¬¤Ï¡¤¤³¤Î¾ðÊó¤ò»ÈÍѤ·¤Æ¥½¡¼¥¹¹Ô¤ò¥ê¥¹¥È¤·¤Þ¤¹¡£ Ê̤κÇŬ²½¥ì¥Ù¥ë (-O2 ¤Ê¤É) ¤ò»ÈÍѤ¹¤ë¤È¡¤ºÇŬ²½¥×¥í¥°¥é¥à¤Ï¡¤¥×¥í¥°¥é¥àÆâ¤ÎÀ©¸æ¥Õ¥í¡¼¤òÊѹ¹¤Ï¤·¤Þ¤»¤ó¤¬¡¤±é»»Ì¿Îá¤ò°Üư¤·¡¤¥ª¥Ö¥¸¥§¥¯¥È¡¦¥³¡¼¥É¤È¥½¡¼¥¹¡¦¥³¡¼¥É¤¬°ìÃפ·¤Ê¤¯¤Ê¤ë¤³¤È¤¬¤¢¤ê¤Þ¤¹¡£ ¤³¤ì¤é¤ÎÊѹ¹¤µ¤ì¤¿¥³¡¼¥É¡¦¥·¡¼¥±¥ó¥¹¤Ï¡¤¥Ç¥Ð¥Ã¥¬¤ò»ÈÍѤ¹¤ë¾ì¹ç¤Ëº®Íð¤ò¾·¤¯²ÄǽÀ­¤¬¤¢¤ê¤Þ¤¹¡£

-g ¥ª¥×¥·¥ç¥ó¤òÉÕ¤±¤º¤Ë¥³¥ó¥Ñ¥¤¥ë¤·¤¿¥³¡¼¥É¤Ç¡¤¸ÂÄꤵ¤ì¤¿¥Ç¥Ð¥Ã¥°¤ò¼Â¹Ô¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£ ¤¿¤È¤¨¤Ð¡¤¼¡¤Î¥³¥Þ¥ó¥É¤Ï¡¤¥Ç¥Ð¥Ã¥°ÍѤ˺ƥ³¥ó¥Ñ¥¤¥ë¤·¤Ê¤¯¤Æ¤â¡¤Àµ¾ï¤Ëưºî¤·¤Þ¤¹¡£

¤³¤Î¥³¡¼¥É¤Ç¸ÂÄꤵ¤ì¤¿¥Ç¥Ð¥Ã¥°¤ò¼Â¹Ô¤¹¤ë¤³¤È¤Ï¤Ç¤­¤Þ¤¹¤¬¡¤-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 ] ]

options

dbx ¥³¥Þ¥ó¥É¹Ô¤¬¥µ¥Ý¡¼¥È¤¹¤ë¥ª¥×¥·¥ç¥ó¤Ë¤Ä¤¤¤Æ¤Ï¡¤É½ 5-2 ¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£

objectfile

¥Ç¥Ð¥Ã¥°ÂÐ¾Ý¤Î¥×¥í¥°¥é¥à¤Î¼Â¹Ô²Äǽ¥Õ¥¡¥¤¥ë̾¤ò»ØÄꤷ¤Þ¤¹¡£ objectfile ¤¬»ØÄꤵ¤ì¤Ê¤¤¾ì¹ç¡¤dbx ¤Ï¡¤¾Êά»þ¤ÎÀßÄê a.out¤ò»ÈÍѤ·¤Þ¤¹¡£

corefile

¥×¥í¥°¥é¥à¤Î¼Â¹Ô¤¬°Û¾ï½ªÎ»¤·¤¿¾ì¹ç¤ä¡¤ 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]
 
 

  1. ¸½ºß¤Î¥Õ¥¡¥¤¥ë [Îã¤ËÌá¤ë]

  2. ¥×¥í¥·¡¼¥¸¥ã̾ [Îã¤ËÌá¤ë]

  3. ÊÑ¿ô̾ [Îã¤ËÌá¤ë]

5.3.2    dbx ¼°¤È¼°¤ÎÍ¥Àè½ç°Ì

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 ¹à¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£

5.4    dbx ¥â¥Ë¥¿¤Ë¤è¤ëºî¶È

dbx ¥Ç¥Ð¥Ã¥¬¤Ç¤Ï¡¤¥³¥Þ¥ó¥É¡¦¥Ò¥¹¥È¥ê¡¤¥³¥Þ¥ó¥É¹ÔÊÔ½¸¡¤¤ª¤è¤Ó¥·¥ó¥Ü¥ë̾¤ÎÊä´°¤¬²Äǽ¤Ç¤¹¡£ ¤Þ¤¿¡¤dbx ¥Ç¥Ð¥Ã¥¬¤Ç¤Ï¡¤ÆþÎϹԤËÊ£¿ô¤Î¥³¥Þ¥ó¥É¤ò»ÈÍѤ¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£ ¤³¤ì¤é¤Îµ¡Ç½¤ò»ÈÍѤ¹¤ë¤È¡¤É¬Í×¤ÊÆþÎÏ¿ô¤ò¸º¤é¤·¤¿¤ê¡¤Á°¤Ë¼Â¹Ô¤·¤¿¥³¥Þ¥ó¥É¤ò·«¤êÊÖ¤¹¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£

5.4.1    dbx ¥³¥Þ¥ó¥É¤Î·«¤êÊÖ¤·

dbx ¥Ç¥Ð¥Ã¥¬¤Ï¡¤¥³¥Þ¥ó¥É¤Î¥Ò¥¹¥È¥ê¤òµ­²±¤·¤Æ¡¤ºÆÆþÎϤ·¤Ê¤¯¤Æ¤â¥Ç¥Ð¥Ã¥¬¡¦¥³¥Þ¥ó¥É¤ò·«¤êÊÖ¤·ÆþÎϤǤ­¤ë¤è¤¦¤Ë¤·¤Þ¤¹¡£ ¤³¤ì¤é¤Î¥³¥Þ¥ó¥É¤Ï¡¤history ¥³¥Þ¥ó¥É¤ò»ÈÍѤ·¤ÆÉ½¼¨¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£ $lines ÊÑ¿ô¤Ï¡¤µ­²±¤¹¤ë¥Ò¥¹¥È¥ê¹Ô¤Î¿ô¤òÀ©¸æ¤·¤Þ¤¹¡£ ¾Êά»þ¤ÎÀßÄê¤Ï¡¤20 ¥³¥Þ¥ó¥É¤Ç¤¹¡£ set ¥³¥Þ¥ó¥É¤ò»ÈÍѤ·¤Æ¡¤$lines ÊÑ¿ô¤òÊѹ¹¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£ 5.5.1 ¹à¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£

¥³¥Þ¥ó¥É¤ò·«¤êÊÖ¤¹¤Ë¤Ï¡¤[Return] ¥­¡¼¡¤¤Þ¤¿¤Ï´¶Ã²Éä (!) ¥³¥Þ¥ó¥É¤Î 1 ¤Ä¤ò»ÈÍѤ·¤Þ¤¹¡£

¼¡¤Îɽ¤Ë¡¤history ¥³¥Þ¥ó¥É¤Î·Á¼°¤ò¼¨¤·¤Þ¤¹¡£

history

¥Ò¥¹¥È¥ê¡¦¥ê¥¹¥È¤Î¥³¥Þ¥ó¥É·²¤òɽ¼¨¤¹¤ë¡£

Return ¥­¡¼

ºÇ¸å¤ËÆþÎϤ·¤¿¥³¥Þ¥ó¥É¤ò·«¤êÊÖ¤¹¡£ ¤³¤Îµ¡Ç½¤Ï¡¤$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)

5.4.2    dbx ¥³¥Þ¥ó¥É¹Ô¤ÎÊÔ½¸

dbx ¥Ç¥Ð¥Ã¥¬¤Ë¤Ï¡¤¥³¥Þ¥ó¥É¹ÔÊÔ½¸¤Î¤¿¤á¤Î¥³¥Þ¥ó¥É¤¬È÷¤ï¤Ã¤Æ¤¤¤Þ¤¹¡£ ¤³¤ì¤é¤Î¥³¥Þ¥ó¥É¤ò»ÈÍѤ¹¤ë¤È¡¤¥³¥Þ¥ó¥ÉÁ´Éô¤òºÆÆþÎϤ»¤º¤Ë¥¿¥¤¥×¡¦¥ß¥¹¤òÄûÀµ¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£ ¥³¥Þ¥ó¥É¹Ô¤ÎÊÔ½¸¤ò»ÈÍѲÄǽ¤Ë¤¹¤ë¤Ë¤Ï¡¤dbx ¤ò¸Æ¤Ó½Ð¤¹Á°¤Ë¡¤EDITOR¡¤EDITMODE¡¤¤Þ¤¿¤Ï LINEEDIT ´Ä¶­ÊÑ¿ô¤òÀßÄꤷ¤Þ¤¹¡£ C ¥·¥§¥ë¤Î¾ì¹ç¤Ë LINEEDIT ¤òÀßÄꤹ¤ë¤Ë¤Ï¡¤¼¡¤Î¥³¥Þ¥ó¥É¤òÆþÎϤ·¤Þ¤¹¡£

% setenv LINEEDIT
 

Bourn ¥·¥§¥ë¤¢¤ë¤¤¤Ï Korn ¥·¥§¥ë¤Î¾ì¹ç¤Ï¡¤¼¡¤Î¥³¥Þ¥ó¥É¤òÆþÎϤ·¤Þ¤¹¡£

% export LINEEDIT
 

¤³¤Î¥Ç¥Ð¥Ã¥¬¤Ç¤Ï¡¤¥³¥Þ¥ó¥É¹ÔÊÔ½¸¤Ç¼¡¤Î¥â¡¼¥É¤¬»ÈÍѤǤ­¤Þ¤¹¡£

ɽ 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 ʸ»ú¸å¤Ë°Üư¤¹¤ë¡£

5.4.3    Ê£¿ô¤Î¥³¥Þ¥ó¥É¤ÎÆþÎÏ

¥»¥ß¥³¥í¥ó (;) ¤ò¶èÀڤ국¹æ¤È¤·¤Æ»ÈÍѤ·¤Æ¡¤¥³¥Þ¥ó¥É¹Ô¤ËÊ£¿ô¤Î¥³¥Þ¥ó¥É¤òÆþÎϤ¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£ ¤³¤Îµ¡Ç½¤Ï¡¤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)

5.4.4    ¥·¥ó¥Ü¥ë̾¤ÎÊä´°

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]

  1. ¥Ç¡¼¥¿·¿¤ª¤è¤Ó¥é¥¤¥Ö¥é¥ê¤Î¥·¥ó¥Ü¥ë¤¬´Þ¤Þ¤ì¤Æ¤¤¤ë²ÄǽÀ­¤¬¤¢¤ê¤Þ¤¹¡£ [Îã¤ËÌá¤ë]

  2. »ØÄê¤Îʸ»ú¤Ç»Ï¤Þ¤ë¤¹¤Ù¤Æ¤Î̾Á°¤ò¥ê¥¹¥È¤·¤¿¸å¡¤Ê̤Îʸ»ú¤Î»ØÄꤪ¤è¤ÓºÆÃµº÷¤¬¤Ç¤­¤ë¤è¤¦¤Ë¡¤dbx ¤Ï¥×¥í¥ó¥×¥È¤È¤È¤â¤Ë»öÁ°¤Ë»ØÄꤵ¤ì¤¿Ê¸»úÎó¤òºÆÉ½¼¨¤·¤Þ¤¹¡£ [Îã¤ËÌá¤ë]

¼¡¤Ë¡¤¥·¥ó¥Ü¥ë̾¤Îñ½ã¤ÊÊä´°¤ÎÎã¤ò¼¨¤·¤Þ¤¹¡£

(dbx) print file [Ctrl/Z]
(dbx) print file_header_ptr
0x124ac
(dbx)

5.5    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) 

  1. dbx ÄêµÁºÑ¤ßÊÑ¿ô¤Î¥ê¥¹¥È¤òɽ¼¨¤·¤Þ¤¹¡£ [Îã¤ËÌá¤ë]

  2. ÊÑ¿ô¤Ë¿·¤·¤¤Ãͤò³ä¤êÅö¤Æ¤Þ¤¹¡£ [Îã¤ËÌá¤ë]

  3. ÊÑ¿ô¤òºï½ü¤·¤Þ¤¹¡£ [Îã¤ËÌá¤ë]

5.5.2    ÄêµÁºÑ¤ß¤Î 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 ¥Ï¥ó¥É¥é¤Ø¤ÎϢ³¤¹¤ë¸Æ¤Ó½Ð¤·¤Î²ó¿ô¤ò»ØÄꤹ¤ë¡£

5.5.3    ÊÌ̾¤ÎÄêµÁ¤ª¤è¤Óºï½ü

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)

  1. ÊÌ̾¤òɽ¼¨¤·¤Þ¤¹¡£ [Îã¤ËÌá¤ë]

  2. ¥Ö¥ì¡¼¥¯¥Ý¥¤¥ó¥È¤òÀßÄꤹ¤ë¤¿¤á¤ËÊÌ̾¤òÄêµÁ¤·¤Þ¤¹¡£ [Îã¤ËÌá¤ë]

  3. 52 ¹ÔÌܤ˥֥졼¥¯¥Ý¥¤¥ó¥È¤òÀßÄꤷ¤Þ¤¹¡£ [Îã¤ËÌá¤ë]

  4. 52 ¹ÔÌܤ˥֥졼¥¯¥Ý¥¤¥ó¥È¤òÀßÄꤷ¤¿¤³¤È¤ò¥Ç¥Ð¥Ã¥¬¤¬Ç§¼±¤·¤Æ¤¤¤Þ¤¹¡£ [Îã¤ËÌá¤ë]

  5. ÊÌ̾ h ¤òºï½ü¤·¤Þ¤¹¡£ ÊÌ̾¤Î¥ê¥¹¥È¤Ëɽ¼¨¤µ¤ì¤Ê¤¤¤³¤È¤ËÃí°Õ¤·¤Æ¤¯¤À¤µ¤¤¡£ [Îã¤ËÌá¤ë]

5.5.4    ¥Ç¥Ð¥Ã¥°¡¦¥»¥Ã¥·¥ç¥ó¾õÂ֤δƻë

status ¥³¥Þ¥ó¥É¤Ï¡¤¼¡¤Î¥³¥Þ¥ó¥É¤Î¤¦¤Á¤Ç¸½ºßÀßÄꤵ¤ì¤Æ¤¤¤ë¤â¤Î¤¬¤¢¤ë¤«¤É¤¦¤«¤ò³Îǧ¤·¤Þ¤¹¡£

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) ¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤)¡£

¥â¥¸¥å¡¼¥ë¤¬Å¬Àڤʾì½ê¤«¤é¥í¡¼¥É¤µ¤ì¤¿¤³¤È¤ò³Îǧ¤¹¤ë¤Ë¤Ï¡¤¼¡¤Î¤¤¤º¤ì¤«¤ÎÊýË¡¤Ç¡¤verbose ¥â¥¸¥å¡¼¥ë¡¦¥í¡¼¥Éµ¡Ç½¤òÀßÄꤷ¤Þ¤¹¡£

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    ¥½¡¼¥¹¡¦¥×¥í¥°¥é¥à¤Î¸¡ºº

¤³¤ÎÀá¤Ç¤Ï¡¤¥½¡¼¥¹¡¦¥³¡¼¥É¤Î¥ê¥¹¥È¤ª¤è¤ÓÊÔ½¸¡¤¥Ç¥£¥ì¥¯¥È¥ê¤ÎÊѹ¹¡¤¥½¡¼¥¹¡¦¥Õ¥¡¥¤¥ë¤ÎÊѹ¹¡¤¥½¡¼¥¹¡¦¥³¡¼¥ÉÆâ¤Îʸ»úÎó¤Îõº÷¡¤½¤¾þ¤µ¤ì¤¿¥·¥ó¥Ü¥ë̾¤Îɽ¼¨¡¤·¿Àë¸À¤Îɽ¼¨¤Ê¤É¤ò¹Ô¤¦ÊýË¡¤Ë¤Ä¤¤¤ÆÀâÌÀ¤·¤Þ¤¹¡£

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) 

  1. ¸½ºß¤Î¥Ç¥£¥ì¥¯¥È¥ê [Îã¤ËÌá¤ë]

  2. ¿·¤·¤¤¥Ç¥£¥ì¥¯¥È¥ê [Îã¤ËÌá¤ë]

5.6.2    ¥¢¥¯¥Æ¥£¥Ö²½¥¹¥¿¥Ã¥¯¤Ç¤Î°Üư

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)

  1. ¥¢¥¯¥Æ¥£¥Ö²½¥ì¥Ù¥ëÈÖ¹æ [Îã¤ËÌá¤ë]

  2. ¥×¥í¥·¡¼¥¸¥ã̾ [Îã¤ËÌá¤ë]

  3. °ú¿ô pline ¤Î¸½ºß¤ÎÃÍ [Îã¤ËÌá¤ë]

  4. ¥½¡¼¥¹¡¦¥Õ¥¡¥¤¥ë̾ [Îã¤ËÌá¤ë]

  5. ¹ÔÈÖ¹æ [Îã¤ËÌá¤ë]

  6. ¥×¥í¥°¥é¥à¡¦¥«¥¦¥ó¥¿ [Îã¤ËÌá¤ë]

5.6.2.2    up ¥³¥Þ¥ó¥É¡¤down ¥³¥Þ¥ó¥É¡¤func ¥³¥Þ¥ó¥É

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 ¥ì¥Ù¥ë¾å¤²¤ë¡£ [Îã¤ËÌá¤ë]

  2. 1 ¥ì¥Ù¥ë²¼¤²¤ë¡£ [Îã¤ËÌá¤ë]

  3. main ¤Ë°Üư¤¹¤ë¡£ [Îã¤ËÌá¤ë]

5.6.3    ¸½ºß¤Î¥½¡¼¥¹¡¦¥Õ¥¡¥¤¥ë¤ÎÊѹ¹

file ¥³¥Þ¥ó¥É¤Ï¡¤¸½ºß¤Î¥½¡¼¥¹¡¦¥Õ¥¡¥¤¥ë¤Îɽ¼¨¡¤¤¢¤ë¤¤¤Ï¸½ºß¤Î¥½¡¼¥¹¡¦¥Õ¥¡¥¤¥ë¤ÎÊѹ¹¤ò¹Ô¤¤¤Þ¤¹¡£

Ãí°Õ

¥Ö¥ì¡¼¥¯¥Ý¥¤¥ó¥È¤Þ¤¿¤Ï¥È¥ì¡¼¥¹¤ò¤¢¤ë¹ÔÈÖ¹æ¤ËÀßÄꤹ¤ëÁ°¤Ë¡¤func ¥³¥Þ¥ó¥É¤ò»ÈÍѤ·¤ÆÀµ¤·¤¤¥×¥í¥·¡¼¥¸¥ã¤ò¼èÆÀ¤·¤Æ¤¯¤À¤µ¤¤¡£ file ¥³¥Þ¥ó¥É¤Ç¤Ï¡¤¥Ç¥Ð¥Ã¥¬¤¬¥Ö¥ì¡¼¥¯¥Ý¥¤¥ó¥È¤òÀßÄꤹ¤ëºÝ¤ËɬÍפʾܤ·¤¤¾ðÊó¤Ë¥¢¥¯¥»¥¹¤Ç¤­¤Þ¤»¤ó¡£

file ¥³¥Þ¥ó¥É¤Î·Á¼°¤Ï¼¡¤Î¤È¤ª¤ê¤Ç¤¹¡£

file

¸½ºß»ÈÍÑÃæ¤Î¥Õ¥¡¥¤¥ë̾¤òɽ¼¨¤¹¤ë¡£

file FILE

¸½ºß¤Î¥Õ¥¡¥¤¥ë¤ò»ØÄꤵ¤ì¤¿¥Õ¥¡¥¤¥ë¤ËÊѹ¹¤¹¤ë¡£

Îã

(dbx) file
sam.c               [1]
(dbx) file data.c
(dbx) file
data.c              [2]
(dbx) 

  1. ¸½ºß¤Î¥Õ¥¡¥¤¥ë [Îã¤ËÌá¤ë]

  2. ¿·¤·¤¤¥Õ¥¡¥¤¥ë [Îã¤ËÌá¤ë]

5.6.4    ¥½¡¼¥¹¡¦¥³¡¼¥É¤Î¥ê¥¹¥È

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) 

5.7    ¥×¥í¥°¥é¥à¤ÎÀ©¸æ

¤³¤ÎÀá¤Ç¤Ï¡¤¥×¥í¥°¥é¥à¤ò¼Â¹Ô¤¹¤ë¤¿¤á¤Ë»ÈÍѤ¹¤ë dbx ¥³¥Þ¥ó¥É¤Ë¤Ä¤¤¤ÆÀâÌÀ¤·¤Þ¤¹¡£ ¤³¤ì¤é¤Î¥³¥Þ¥ó¥É¤Ç¤Ï¡¤¥×¥í¥°¥é¥à¤Î¼Â¹Ô¡¤¥½¡¼¥¹¡¦¥³¡¼¥É¤Î¹Ôñ°Ì¤Î¼Â¹Ô¡¤¥×¥í¥·¡¼¥¸¥ã¸Æ¤Ó½Ð¤·¤«¤é¤ÎÌá¤ê¡¤»ØÄê¹Ô¤«¤é¤Î³«»Ï¡¤¥Ö¥ì¡¼¥¯¥Ý¥¤¥ó¥È¤ÇÄä»ß¤·¤¿¸å¤ÎºÆ³«¡¤¥×¥í¥°¥é¥àÊÑ¿ô¤Ø¤ÎÃͤγä¤êÅö¤Æ¡¤¼Â¹Ô²Äǽ¤Ê¥Ç¥£¥¹¥¯¡¦¥Õ¥¡¥¤¥ë¤Î¥Ñ¥Ã¥Á¡¤ÆÃÄê¥ë¡¼¥Á¥ó¤Î¼Â¹Ô¡¤´Ä¶­ÊÑ¿ô¤ÎÀßÄꡤ¤ª¤è¤Ó¥·¥§¥¢¡¼¥É¡¦¥é¥¤¥Ö¥é¥ê¤Î¥í¡¼¥É¤Ê¤É¤ò¼Â¹Ô¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£

5.7.1    ¥×¥í¥°¥é¥à¤Î¼Â¹Ô¤ª¤è¤ÓºÆ¼Â¹Ô

run ¤ª¤è¤Ó rerun ¥³¥Þ¥ó¥É¤Ï¡¤¥×¥í¥°¥é¥à¤Î¼Â¹Ô¤ò³«»Ï¤·¤Þ¤¹¡£ ¤¤¤º¤ì¤Î¥³¥Þ¥ó¥É¤Ë¤â°ú¿ô¤ò»ØÄꤷ¡¤¤½¤ì¤ò¥×¥í¥°¥é¥à¤ËÅϤ¹¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£ run ¥³¥Þ¥ó¥É¤Ë°ú¿ô¤¬»ØÄꤵ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¤Ï¡¤dbx ¤Ï°ú¿ô¤Ê¤·¤Ç¥×¥í¥°¥é¥à¤ò¼Â¹Ô¤·¤Þ¤¹¡£ rerun ¥³¥Þ¥ó¥É¤Ë°ú¿ô¤¬»ØÄꤵ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¤Ï¡¤Á°²ó¤Î run ¤¢¤ë¤¤¤Ï rerun ¥³¥Þ¥ó¥É¼Â¹Ô»þ¤Î°ú¿ô¤¬»ÈÍѤµ¤ì¤Þ¤¹¡£ rerun ¥³¥Þ¥ó¥É¤ò¼Â¹Ô¤¹¤ëÁ°¤Ë¡¤args ¥³¥Þ¥ó¥É¤ò»ÈÍѤ·¤ÆÁ°¤â¤Ã¤Æ°ú¿ô¤ò»ØÄꤷ¤Æ¤ª¤¯¤³¤È¤â¤Ç¤­¤Þ¤¹¡£ args ¥³¥Þ¥ó¥É¤Ç»ØÄꤵ¤ì¤¿°ú¿ô¤Ï¡¤¼¡¤Î run ¥³¥Þ¥ó¥É¤Ç¤Ï̵»ë¤µ¤ì¤Þ¤¹¡£

¤³¤ì¤é¤Î¥³¥Þ¥ó¥É¤Ï¡¤C ¥·¥§¥ë¤Î¥ê¥À¥¤¥ì¥¯¥·¥ç¥ó¤ÈƱÍͤÎÊýË¡¤Ç¡¤¥×¥í¥°¥é¥àÆþ½ÐÎϤò¥ê¥À¥¤¥ì¥¯¥È¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£

Ãí°Õ

¤³¤Î½ÐÎÏÆâÍÆ¤Ï¡¤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)  

  1. °ú¿ô¤Ï sam.c ¤Ç¤¹¡£ [Îã¤ËÌá¤ë]

  2. Á°²ó»ØÄꤷ¤¿°ú¿ô¤Ç¥×¥í¥°¥é¥à¤òºÆ¼Â¹Ô¤·¤Þ¤¹¡£ [Îã¤ËÌá¤ë]

5.7.2    step ¥³¥Þ¥ó¥É¤Ë¤è¤ë¥×¥í¥°¥é¥à¤Î¼Â¹Ô

¹âµé¸À¸ì¤ÇºîÀ®¤µ¤ì¤Æ¤¤¤ë¥×¥í¥°¥é¥à¤ËÂФ·¤Æ¤Ï¡¤step ¥³¥Þ¥ó¥É¤ª¤è¤Ó next ¥³¥Þ¥ó¥É¤ò»ÈÍѤ¹¤ë¤³¤È¤Ë¤è¤Ã¤Æ¡¤»ØÄꤷ¤¿¹Ô¿ô¤Î¥½¡¼¥¹¡¦¥³¡¼¥É¤ò¼Â¹Ô¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£ ¥¢¥»¥ó¥Ö¥ê¸À¸ì¤ÇºîÀ®¤µ¤ì¤Æ¤¤¤ë¥×¥í¥°¥é¥à¤ËÂФ·¤Æ¤Ï¡¤stepi ¥³¥Þ¥ó¥É¤ª¤è¤Ó nexti ¥³¥Þ¥ó¥É¤ò»ÈÍѤ·¤Þ¤¹¡£ ¤¿¤À¤·¤³¤Î¾ì¹ç¡¤EXP ¤Ë»ØÄꤹ¤ë¿ô¤Ï¥×¥í¥°¥é¥à¤Î¹Ô¿ô¤Ç¤Ï¤Ê¤¯µ¡³£¸ìÌ¿Îá¤Î¿ô¤Ë¤Ê¤ê¤Þ¤¹¡£ EXP ¤ò»ØÄꤷ¤Ê¤¤¾ì¹ç¤Ï¡¤dbx ¤Ï¥½¡¼¥¹¡¦¥³¡¼¥É¤ò 1 ¹Ô¤¢¤ë¤¤¤Ï 1 µ¡³£¸ìÌ¿Îá¤À¤±¼Â¹Ô¤·¤Þ¤¹¡£

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)

5.7.6    ¥×¥í¥°¥é¥àÊÑ¿ôÃͤÎÊѹ¹

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) 

  1. i ¤ÎÃÍ¡£ [Îã¤ËÌá¤ë]

  2. i ¤Î¿·¤·¤¤ÃÍ¡£ [Îã¤ËÌá¤ë]

  3. ¥¢¥É¥ì¥¹¤¬À°¿ô¤È¤Ê¤ë¤è¤¦¤ËÀßÄꤷ¡¤ÃÍ 1 ¤ò³ä¤êÅö¤Æ¤ë¡£ [Îã¤ËÌá¤ë]

5.7.7    ¼Â¹Ô²Äǽ¤Ê¥Ç¥£¥¹¥¯¡¦¥Õ¥¡¥¤¥ë¤Î¥Ñ¥Ã¥Á

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) 

  1. stop ¥³¥Þ¥ó¥É¤Ç prnt() ´Ø¿ô¤Ë¥Ö¥ì¡¼¥¯¥Ý¥¤¥ó¥È¤òÀßÄꤷ¤Þ¤¹¡£ [Îã¤ËÌá¤ë]

  2. call ¥³¥Þ¥ó¥É¤Ç prnt() ¤ËÂбþ¤¹¤ë¥ª¥Ö¥¸¥§¥¯¥È¡¦¥³¡¼¥É¤ò¼Â¹Ô¤·¤Þ¤¹¡£ »²¾È¤Ë¤è¤ê¡¤line1 °ú¿ô¤Ïʸ»úÎó¤ò prnt ¤ËÅϤ·¤Þ¤¹¡£ [Îã¤ËÌá¤ë]

  3. status ¥³¥Þ¥ó¥É¤Ç¸½ºßÍ­¸ú¤Ê¥Ö¥ì¡¼¥¯¥Ý¥¤¥ó¥È¤òɽ¼¨¤·¤Þ¤¹¡£ [Îã¤ËÌá¤ë]

  4. delete ¥³¥Þ¥ó¥É¤Ç 52 ¹Ô¤È 40 ¹Ô¤Î¥Ö¥ì¡¼¥¯¥Ý¥¤¥ó¥È¤òºï½ü¤·¤Þ¤¹¡£ [Îã¤ËÌá¤ë]

print ¥³¥Þ¥ó¥É¤Ç¤Ï¡¤½ÐÎϤ¹¤ë¼°¤Ë¥×¥í¥·¡¼¥¸¥ã¤ò»ÈÍѤ¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£ ¼¡¤ËÎã¤ò¼¨¤·¤Þ¤¹¡£

(dbx) print sqrt(2.)+sqrt(3.)

5.7.9    ´Ä¶­ÊÑ¿ô¤ÎÀßÄê

´Ä¶­ÊÑ¿ô¤òÀßÄꤹ¤ë¤Ë¤Ï¡¤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

  1. setenv ¥³¥Þ¥ó¥É¤Ç´Ä¶­ÊÑ¿ô TEXT ¤ò sam.c ¤ËÀßÄꤷ¤Þ¤¹¡£ [Îã¤ËÌá¤ë]

  2. run ¥³¥Þ¥ó¥É¤Ç¥×¥í¥°¥é¥à¤ò½é¤á¤«¤é¼Â¹Ô¤·¤Þ¤¹¡£ ¥×¥í¥°¥é¥à¤Ï¡¤´Ä¶­ÊÑ¿ô TEXT ¤Ë»ØÄꤵ¤ì¤¿¥Õ¥¡¥¤¥ë¤«¤éÆþÎϤòÆÉ¤ß¼è¤ê¤Þ¤¹¡£ ¥×¥í¥°¥é¥à¤Ï 52 ¹ÔÌܤΥ֥졼¥¯¥Ý¥¤¥ó¥È¤ÇÄä»ß¤·¤Þ¤¹¡£ [Îã¤ËÌá¤ë]

  3. setenv ¥³¥Þ¥ó¥É¤Ç´Ä¶­ÊÑ¿ô TEXT ¤ò¥Ì¥ë¤ËÀßÄꤷ¤Þ¤¹¡£ [Îã¤ËÌá¤ë]

  4. run ¥³¥Þ¥ó¥É¤Ç¥×¥í¥°¥é¥à¤ò¼Â¹Ô¤·¤Þ¤¹¡£ TEXT ´Ä¶­ÊÑ¿ô¤Ë¥Ì¥ëÃͤ¬»ØÄꤵ¤ì¤Æ¤¤¤ë¤¿¤á¡¤ÆþÎÏ¥Õ¥¡¥¤¥ë¤ò»ØÄꤹ¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£ [Îã¤ËÌá¤ë]

5.8    ¥Ö¥ì¡¼¥¯¥Ý¥¤¥ó¥È¤ÎÀßÄê

¥Ö¥ì¡¼¥¯¥Ý¥¤¥ó¥È¤Ï¡¤¥×¥í¥°¥é¥à¤Î¼Â¹Ô¤ò°ì»þŪ¤ËÄä»ß¤·¡¤¤½¤Î»þÅÀ¤Ç¥×¥í¥°¥é¥à¤Î¾õÂÖ¤ò¸¡ºº¤Ç¤­¤ë¤è¤¦¤Ë¤·¤Þ¤¹¡£ ¤³¤ÎÀá¤Ç¤Ï¡¤dbx ¥³¥Þ¥ó¥É¤ò»ÈÍѤ·¤Æ¡¤ÆÃÄê¹Ô¤Þ¤¿¤Ï¥×¥í¥·¡¼¥¸¥ãÆâ¤Ë¥Ö¥ì¡¼¥¯¥Ý¥¤¥ó¥È¤òÀßÄꤷ¤¿¤ê¡¤³Æ¥·¥°¥Ê¥ë¤Ë¤è¤Ã¤Æ¥×¥í¥°¥é¥à¤Î¼Â¹Ô¤òÄä»ß¤¹¤ëÊýË¡¤Ë¤Ä¤¤¤ÆÀâÌÀ¤·¤Þ¤¹¡£

5.8.1    ³µÍ×

¥×¥í¥°¥é¥à¤¬¥Ö¥ì¡¼¥¯¥Ý¥¤¥ó¥È¤ÇÄä»ß¤¹¤ë¤È¡¤¥Ç¥Ð¥Ã¥¬¤¬¾ðÊó¥á¥Ã¥»¡¼¥¸¤òɽ¼¨¤·¤Þ¤¹¡£ ¤¿¤È¤¨¤Ð¡¤main() ¥×¥í¥·¡¼¥¸¥ã¤Î 23 ¹ÔÌܤˤ¢¤ë¥µ¥ó¥×¥ë¡¦¥×¥í¥°¥é¥à sam.c ¤Ë¥Ö¥ì¡¼¥¯¥Ý¥¤¥ó¥È¤¬ÀßÄꤵ¤ì¤ë¤È¡¤¼¡¤Î¥á¥Ã¥»¡¼¥¸¤¬É½¼¨¤µ¤ì¤Þ¤¹¡£

[4] stopped at   [main:40, 0x120000b18]     i=strlen(line1.string);
 |                 |   |    |               |
 |                 |   |    |               [5] 
 |                 |   |    [4]
 |                 |   [3]
 |                 [2]
 [1]
 
 

  1. ¥Ö¥ì¡¼¥¯¥Ý¥¤¥ó¥È¾õÂÖÈÖ¹æ [Îã¤ËÌá¤ë]

  2. ¥×¥í¥·¡¼¥¸¥ã̾ [Îã¤ËÌá¤ë]

  3. ¹ÔÈÖ¹æ [Îã¤ËÌá¤ë]

  4. ¸½ºß¤Î¥×¥í¥°¥é¥à¡¦¥«¥¦¥ó¥¿

    ¤³¤ÎÈÖ¹æ¤Ë¤è¤Ã¤Æ¼¨¤µ¤ì¤ë¥Ý¥¤¥ó¥È¤«¤é¥¢¥»¥ó¥Ö¥ê¸À¸ìÌ¿Îá¤òɽ¼¨¤·¤Þ¤¹¡£ 5.7.5 ¹à¤ò»²¾È¡£ [Îã¤ËÌá¤ë]

  5. ¥½¡¼¥¹¹Ô [Îã¤ËÌá¤ë]

Ê£¿ô¤Î¥½¡¼¥¹¡¦¥Õ¥¡¥¤¥ë¤¬¤¢¤ë¥×¥í¥°¥é¥à¤Ë¥Ö¥ì¡¼¥¯¥Ý¥¤¥ó¥È¤òÀßÄꤹ¤ëÁ°¤Ë¤Ï¡¤Àµ¤·¤¤¥Õ¥¡¥¤¥ë¤Ë¥Ö¥ì¡¼¥¯¥Ý¥¤¥ó¥È¤òÀßÄꤷ¤Æ¤¤¤ë¤³¤È¤ò³Îǧ¤·¤Þ¤¹¡£ Àµ¤·¤¤¥×¥í¥·¡¼¥¸¥ã¤òÁªÂò¤¹¤ë¤Ë¤Ï¡¤¼¡¤Î¼ê½ç¤ò¼Â¹Ô¤·¤Æ¤¯¤À¤µ¤¤¡£

  1. file ¥³¥Þ¥ó¥É¤ò»ÈÍѤ·¤Æ¥½¡¼¥¹¡¦¥Õ¥¡¥¤¥ë¤òÁªÂò¤¹¤ë¡£

  2. func ¥³¥Þ¥ó¥É¤ò»ÈÍѤ·¤Æ¥×¥í¥·¡¼¥¸¥ã̾¤ò»ØÄꤹ¤ë¡£

  3. list ¥³¥Þ¥ó¥É¤Ç¥Õ¥¡¥¤¥ë¤Þ¤¿¤Ï¥×¥í¥·¡¼¥¸¥ã¤Î¹Ô¤ò¥ê¥¹¥È¤¹¤ë¡£ 5.6.4 ¹à¤ò»²¾È¡£

  4. stop at¥³¥Þ¥ó¥É¤ò»ÈÍѤ·¤ÆÉ¬ÍפʹԤ˥֥졼¥¯¥Ý¥¤¥ó¥È¤òÀßÄꤹ¤ë¡£

5.8.2    stop ¤ª¤è¤Ó stopi ¤Ë¤è¤ë¥Ö¥ì¡¼¥¯¥Ý¥¤¥ó¥È¤ÎÀßÄê

¹âµé¸À¸ì¤ÇºîÀ®¤µ¤ì¤Æ¤¤¤ë¥×¥í¥°¥é¥à¤Î¥Ç¥Ð¥Ã¥°¤Î¾ì¹ç¡¤stop ¥³¥Þ¥ó¥É¤Ï¡¤¼¡¤Î¤è¤¦¤Ë¼Â¹Ô¤òÄä»ß¤¹¤ë¤¿¤á¤Î¥Ö¥ì¡¼¥¯¥Ý¥¤¥ó¥È¤òÀßÄꤷ¤Þ¤¹¡£ ¤Ä¤Þ¤ê¡¤ÊÑ¿ô¤¬Êѹ¹¤µ¤ì¤ë¤«¡¤¤¢¤ë¤¤¤Ï»ØÄꤵ¤ì¤¿¾ò·ï¤¬¿¿¤Î¤È¤­¤Ë¡¤ÆÃÄê¤Î¥×¥í¥·¡¼¥¸¥ã¤ÎÆÃÄê¤Î¹Ô¤Ç¡¤¥×¥í¥°¥é¥à¤Î¼Â¹Ô¤òÄä»ß¤µ¤»¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£ ¥¢¥»¥ó¥Ö¥ê¸À¸ì¤ÇºîÀ®¤µ¤ì¤Æ¤¤¤ë¥×¥í¥°¥é¥à¤Î¥Ç¥Ð¥Ã¥°¤Î¾ì¹ç¤Ï¡¤stopi ¥³¥Þ¥ó¥É¤ò»ÈÍѤ·¤Þ¤¹¡£ ¤¿¤À¤·¡¤stopi ¥³¥Þ¥ó¥É¤Ï¡¤¥×¥í¥°¥é¥à¹Ô¤ÎÂå¤ï¤ê¤Ëµ¡³£¸ìÌ¿Îá¤ò¥È¥ì¡¼¥¹¤·¤Þ¤¹¡£ $stop_on_exec ÄêµÁºÑ¤ßÊÑ¿ô¤òÀßÄꤹ¤ë¤³¤È¤Ë¤è¤ê¡¤dbx ¤Ë»Ø¼¨¤·¤Æ¡¤exec() ¤Ë¤è¤Ã¤Æµ¯Æ°¤µ¤ì¤¿¿·¤·¤¤¥¤¥á¡¼¥¸¤ËÆþ¤ë¤È¡¤Ää»ß¤¹¤ë¤è¤¦¤ËÀßÄꤹ¤ë¤³¤È¤â¤Ç¤­¤Þ¤¹ (ɽ 5-8 ¤ò»²¾È)¡£

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)

5.8.3    ¼Â¹ÔÃæ¤ÎÊÑ¿ô¤Î¥È¥ì¡¼¥¹

¹âµé¸À¸ì¤ÇºîÀ®¤µ¤ì¤Æ¤¤¤ë¥×¥í¥°¥é¥à¤Î¥Ç¥Ð¥Ã¥°¤Î¾ì¹ç¤Ï¡¤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]    

  1. line1.length ¤ÎÃÍ [Îã¤ËÌá¤ë]

  2. ¥×¥í¥·¡¼¥¸¥ã prnt Æâ¤ÇÄä»ß¤·¤Þ¤¹¡£ [Îã¤ËÌá¤ë]

5.8.5    ¥·¥°¥Ê¥ë¤Î¼õ¿®¤ª¤è¤Ó̵»ë

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) 

  1. ¼õ¿®¥ê¥¹¥È¤òɽ¼¨¤·¤Þ¤¹¡£ [Îã¤ËÌá¤ë]

  2. ̵»ë¥ê¥¹¥È¤òɽ¼¨¤·¤Þ¤¹¡£ [Îã¤ËÌá¤ë]

  3. 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) 

  1. 10 ¿Ê¿ô [Îã¤ËÌá¤ë]

  2. 8 ¿Ê¿ô [Îã¤ËÌá¤ë]

  3. 16 ¿Ê¿ô [Îã¤ËÌá¤ë]

  4. 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)

5.9.3    ¥á¥â¥ê¤ÎÆâÍÆ¤Îɽ¼¨

¥á¥â¥ê¤ÎÆâÍÆ¤Ï¡¤¥¢¥É¥ì¥¹¤ª¤è¤Óɽ¼¨¥Õ¥©¡¼¥Þ¥Ã¥È¤ò»ØÄꤹ¤ë¤³¤È¤Ë¤è¤Ã¤ÆÉ½¼¨¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£

¥³¥Þ¥ó¥É¤Î·Á¼°¤Ï¼¡¤Î¤È¤ª¤ê¤Ç¡¤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) 

  1. µ­Ï¿¤ò³«»Ï¤·¤Þ¤¹¡£ [Îã¤ËÌá¤ë]

  2. µ­Ï¿¤òÃæ»ß¤·¤Þ¤¹¡£ [Îã¤ËÌá¤ë]

  3. ÆþÎÏ¥³¥Þ¥ó¥É¤òºÆ¸½¤·¤Þ¤¹¡£ [Îã¤ËÌá¤ë]

  4. µ­Ï¿¤òÃæ»ß¤·¤¿¤È¤­¤Ë¥¤¥Ù¥ó¥È 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 ¤Ä¤ÎÉôʬ¤«¤é¤Ê¤ê¤Þ¤¹¡£

¥³¥¢¡¦¥Õ¥¡¥¤¥ë¤Î¥Í¡¼¥ß¥ó¥°µ¡Ç½¤Ï¡¤¥·¥¹¥Æ¥à¡¦¥ì¥Ù¥ë (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-id

process-id ¤Ë¤Ï¡¤¥¢¥¿¥Ã¥Á¤¹¤ë¥×¥í¥»¥¹¤Î¥×¥í¥»¥¹ ID ¤ò»ØÄꤷ¤Þ¤¹¡£

¥Ç¥Ð¥Ã¥°¤Î¤¿¤á¤Ë¥×¥í¥»¥¹¤Ë¥¢¥¿¥Ã¥Á¤¹¤ë¤Ë¤Ï¡¤¥³¥Þ¥ó¥É¹Ô¥ª¥×¥·¥ç¥ó¤Î -pid  process  id ¤ò»ÈÍѤ¹¤ë¤³¤È¤â¤Ç¤­¤Þ¤¹¡£

¼Â¹ÔÃæ¤Î¥×¥í¥»¥¹¤«¤é¥Ç¥¿¥Ã¥Á¤¹¤ë¤Ë¤Ï¡¤dbx ¥³¥Þ¥ó¥É¤Î detach ¤ò»ÈÍѤ·¤Þ¤¹¡£ ¤³¤Î¥³¥Þ¥ó¥É¤Î¹½Ê¸¤Ï¼¡¤Î¤È¤ª¤ê¤Ç¤¹¡£

detach [process-id ]

process-id ¤Ë¤Ï¡¤¥Ç¥¿¥Ã¥Á¤¹¤ë¥×¥í¥»¥¹¤Î¥×¥í¥»¥¹ ID ¤ò»ØÄꤷ¤Þ¤¹¡£ °ú¿ô¤ò¾Êά¤·¤¿¾ì¹ç¤Ï¡¤dbx ¤Ï¸½ºß¤Î¥×¥í¥»¥¹¤ò¥Ç¥¿¥Ã¥Á¤·¤Þ¤¹¡£

¤¢¤ë¥×¥í¥»¥¹¤«¤éÊÌ¤Î¥×¥í¥»¥¹¤ËÊѹ¹¤¹¤ë¾ì¹ç¤Ï¡¤switch ¥³¥Þ¥ó¥É¤ò»ÈÍѤ·¤Þ¤¹¡£ ¤³¤Î¥³¥Þ¥ó¥É¤Î¹½Ê¸¤Ï¼¡¤Î¤È¤ª¤ê¤Ç¤¹¡£

switch process-id

process-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 ¤Ä¤Î´ðËÜ¥³¥Þ¥ó¥É¤ò¥µ¥Ý¡¼¥È¤·¤Þ¤¹¡£

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 ¤Ï¾õÂÖ¤òɽ¼¨¤·¤Æ¡¤È󯱴ü¤Ë¥³¥Þ¥ó¥É¤ò¼õ¤±Æþ¤ì¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£ È󯱴ü¤Ë¼Â¹Ô¤·¤Æ¤¤¤ë¤È¡¤¥Ç¥Ð¥Ã¥¬¤Îưºî¤¬º®Í𤷤Ƥ¤¤ë¤è¤¦¤Ë¸«¤¨¤ë¤³¤È¤¬¤¢¤ê¤Þ¤¹¡£ ¤³¤ì¤Ï¡¤Ää»ß¤·¤Æ¤¤¤ëÊÌ¤Î¥×¥í¥»¥¹¤òÄ´¤Ù¤ë¥³¥Þ¥ó¥É¤òÆþÎϤ·¤Æ¤¤¤ë¤È¤­¤Ë¡¤¼Â¹Ô¥×¥í¥»¥¹¤¬½ÐÎϤò²èÌ̤Ëɽ¼¨¤¹¤ë¤³¤È¤¬¤¢¤ë¤¿¤á¤Ç¤¹¡£

¼¡¤Î¤¤¤º¤ì¤«¤Î¾õ¶·¤Î¾ì¹ç¡¤¥Ç¥Ð¥Ã¥¬¤Ï¼«Æ°Åª¤ËÈ󯱴ü¥â¡¼¥É¤Ë¤Ê¤ê¤Þ¤¹¡£

¥Ç¥Ð¥Ã¥¬¤Ï¡¤Â¿¿ô¤ÎÄêµÁºÑ¤ßÊÑ¿ô¤ò»ÈÍѤ·¤Æ¡¤È󯱴ü¥Ç¥Ð¥Ã¥°¤Îưºî¤òÄêµÁ¤·¤Þ¤¹ (ɽ 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);
}