Next: , Previous: Convenience Vars, Up: Data   [Contents][Index]


8.10 ¥ì¥¸¥¹¥¿

¥Þ¥·¥ó¡¦¥ì¥¸¥¹¥¿¤ÎÆâÍÆ¤Ï¡¢ ÀèÆ¬¤¬‘$’¤Ç»Ï¤Þ¤ë̾Á°¤ò»ý¤ÄÊÑ¿ô¤È¤·¤Æ¡¢ ¼°¤ÎÃæ¤Ç»²¾È¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£ ¥ì¥¸¥¹¥¿¤Î̾Á°¤Ï¡¢ ¥Þ¥·¥ó¤Ë¤è¤Ã¤Æ°Û¤Ê¤ê¤Þ¤¹¡£ info registers¥³¥Þ¥ó¥É¤ò»ÈÍѤ¹¤ë¤³¤È¤Ç¡¢ ¤½¤Î¥Þ¥·¥ó¤Ç»ÈÍѤµ¤ì¤Æ¤¤¤ë¥ì¥¸¥¹¥¿¤Î̾Á°¤òÃΤ뤳¤È¤¬¤Ç¤­¤Þ¤¹¡£

info registers

¡ÊÁªÂò¤µ¤ì¤¿¥¹¥¿¥Ã¥¯¡¦¥Õ¥ì¡¼¥à¤Ë¤ª¤±¤ë¡Ë ÉâÆ°¾®¿ôÅÀ¥ì¥¸¥¹¥¿¤ò½ü¤¯¤¹¤Ù¤Æ¤Î¥ì¥¸¥¹¥¿¤Î̾Á°¤ÈÃͤòɽ¼¨¤·¤Þ¤¹¡£

info all-registers

ÉâÆ°¾®¿ôÅÀ¥ì¥¸¥¹¥¿¤â´Þ¤á¤Æ¤¹¤Ù¤Æ¤Î¥ì¥¸¥¹¥¿¤Î̾Á°¤ÈÃͤòɽ¼¨¤·¤Þ¤¹¡£

info registers regname

»ØÄꤵ¤ì¤¿¥ì¥¸¥¹¥¿regname¤Î ÁêÂв½¤µ¤ì¤¿ÃÍ¡Êrelativized value¡Ë¤òɽ¼¨¤·¤Þ¤¹¡£ °Ê²¼¤Ë¾Ü¤·¤¯½Ò¤Ù¤ë¤è¤¦¤Ë¡¢ ¥ì¥¸¥¹¥¿¤ÎÃͤϡ¢ Ä̾ï¤Ï¡¢ ÁªÂò¤µ¤ì¤¿¥¹¥¿¥Ã¥¯¡¦¥Õ¥ì¡¼¥à¤È´Ø·¸¤ò»ý¤ÄÁêÂÐŪ¤ÊÃͤǤ¹¡£ regname¤Ë¤Ï¡¢ ¥æ¡¼¥¶¤Î»ÈÍѤ·¤Æ¤¤¤ë¥Þ¥·¥ó¾å¤Ë¤ª¤¤¤ÆÍ­¸ú¤ÊǤ°Õ¤Î¥ì¥¸¥¹¥¿¤ÎÃͤ¬ÀßÄê²Äǽ¤Ç¤¹¡£ ÀèÆ¬¤Î‘$’¤Ï¡¢ ¤¢¤Ã¤Æ¤â¤Ê¤¯¤Æ¤â¤«¤Þ¤¤¤Þ¤»¤ó¡£

GDB¤Ï¡¢ ¤½¤Î¥Þ¥·¥ó¡¦¥¢¡¼¥­¥Æ¥¯¥Á¥ã¤¬»ý¤Ä¥ì¥¸¥¹¥¿¤ÎÀµµ¬¤Î¥Ë¡¼¥â¥Ë¥Ã¥¯¤È¾×ÆÍ¤·¤Ê¤¤¸Â¤ê¡¢ ¤Û¤È¤ó¤É¤Î¥Þ¥·¥ó¾å ¡Ê¤Î¼°¤ÎÃæ¡Ë ¤Ë¤ª¤¤¤ÆÍøÍѲÄǽ¤Ê¡¢ 4¤Ä¤Î¡Öɸ½àŪ¡×¤Ê¥ì¥¸¥¹¥¿Ì¾¤ò»ý¤Ã¤Æ¤¤¤Þ¤¹¡£ ¥ì¥¸¥¹¥¿Ì¾$pc¤È$sp¤Ï¡¢ ¥×¥í¥°¥é¥à¡¦¥«¥¦¥ó¥¿¡¦¥ì¥¸¥¹¥¿¤È¥¹¥¿¥Ã¥¯¡¦¥Ý¥¤¥ó¥¿¤ò»Ø¤¹¤¿¤á¤Ë»È¤ï¤ì¤Þ¤¹¡£ $fp¤Ï¡¢ ¥«¥ì¥ó¥È¤Ê¥¹¥¿¥Ã¥¯¡¦¥Õ¥ì¡¼¥à¤Ø¤Î¥Ý¥¤¥ó¥¿¤òÊÝ»ý¤¹¤ë¥ì¥¸¥¹¥¿¤ò»Ø¤¹¤¿¤á¤Ë»È¤ï¤ì¤Þ¤¹¡£ $ps¤Ï¡¢ ¥×¥í¥»¥Ã¥µ¤Î¾õÂÖ¤òÊÝ»ý¤¹¤ë¥ì¥¸¥¹¥¿¤ò»Ø¤¹¤¿¤á¤Ë»È¤ï¤ì¤Þ¤¹¡£ Î㤨¤Ð¡¢ ¥×¥í¥°¥é¥à¡¦¥«¥¦¥ó¥¿¤ÎÃͤò16¿Ê¿ô¤Çɽ¼¨¤¹¤ë¤Ë¤Ï¡¢ °Ê²¼¤Î¤è¤¦¤Ë¼Â¹Ô¤·¤Þ¤¹¡£

p/x $pc

¤Þ¤¿¡¢ ¼¡¤Ë¼Â¹Ô¤µ¤ì¤ëÌ¿Îá¤òɽ¼¨¤¹¤ë¤Ë¤Ï¡¢ °Ê²¼¤Î¤è¤¦¤Ë¼Â¹Ô¤·¤Þ¤¹¡£

x/i $pc

¤µ¤é¤Ë¡¢ ¥¹¥¿¥Ã¥¯¡¦¥Ý¥¤¥ó¥¿ 2 ¤Ë4¤ò²Ã¤¨¤ë¤Ë¤Ï¡¢ °Ê²¼¤Î¤è¤¦¤Ë¼Â¹Ô¤·¤Þ¤¹¡£

set $sp += 4

²Äǽ¤Ê¾ì¹ç¤Ë¤Ï¤¤¤Ä¤Ç¤â¡¢ ¤³¤ì¤é4¤Ä¤Îɸ½àŪ¤Ê¥ì¥¸¥¹¥¿Ì¾¤¬»ÈÍѲÄǽ¤Ç¤¹¡£ ¥æ¡¼¥¶¤Î¥Þ¥·¥ó¤¬°Û¤Ê¤ëÀµµ¬¤Î¥Ë¡¼¥â¥Ë¥Ã¥¯¤ò»ÈÍѤ·¤Æ¤¤¤ë¾ì¹ç¤Ç¤â¡¢ ̾Á°¤Î¾×ÆÍ¤µ¤¨µ¯¤³¤é¤Ê¤±¤ì¤Ð¡¢ »ÈÍѲÄǽ¤Ç¤¹¡£ info registers¥³¥Þ¥ó¥É¤Ë¤è¤ê¡¢ Àµµ¬Ì¾¤ò¸«¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£ Î㤨¤Ð¡¢ SPARC¾å¤Ç info registers¥³¥Þ¥ó¥É¤ò¼Â¹Ô¤¹¤ë¤È¡¢ ¥×¥í¥»¥Ã¥µ¡¦¥¹¥Æ¡¼¥¿¥¹¡¦¥ì¥¸¥¹¥¿¤Ï$psr¤Èɽ¼¨¤µ¤ì¤Þ¤¹¤¬¡¢ ¤³¤Î¥ì¥¸¥¹¥¿¤ò$ps¤È¤·¤Æ»²¾È¤¹¤ë¤³¤È¤â¤Ç¤­¤Þ¤¹¡£

¥ì¥¸¥¹¥¿¤¬¤³¤ÎÊýË¡¤ÇÄ´¤Ù¤é¤ì¤ë¤È¤­¡¢ GDB¤ÏÉáÄ̤Υ쥸¥¹¥¿¤ÎÆâÍÆ¤ò¾ï¤ËÀ°¿ôÃͤȤߤʤ·¤Þ¤¹¡£ ¥Þ¥·¥ó¤Ë¤è¤Ã¤Æ¤Ï¡¢ ÉâÆ°¾®¿ôÅÀÃͰʳ°¤òÊÝ»ý¤Ç¤­¤Ê¤¤¥ì¥¸¥¹¥¿¤ò»ý¤Ä¤â¤Î¤¬¤¢¤ê¤Þ¤¹¡£ ¤³¤Î¤è¤¦¤Ê¥ì¥¸¥¹¥¿¤Ï¡¢ ÉâÆ°¾®¿ôÅÀÃͤò»ý¤Ä¤â¤Î¤È¤ß¤Ê¤µ¤ì¤Þ¤¹¡£ ÉáÄ̤Υ쥸¥¹¥¿¤ÎÆâÍÆ¤òÉâÆ°¾®¿ôÅÀÃͤȤ·¤Æ»²¾È¤¹¤ëÊýË¡¤Ï¤¢¤ê¤Þ¤»¤ó ¡Ê‘print/f $regname’¤Ë¤è¤ê¡¢ ÉâÆ°¾®¿ôÅÀÃͤȤ·¤ÆÃͤòɽ¼¨¤¹¤ë¤³¤È¤Ï¤Ç¤­¤Þ¤¹¡Ë¡£

¥ì¥¸¥¹¥¿¤Ë¤Ï¡¢ raw¤Èvirtual¤Î2¤Ä¤Î°Û¤Ê¤ë¥Ç¡¼¥¿·Á¼°¤ò¼è¤ë¤â¤Î¤¬¤¢¤ê¤Þ¤¹¡£ ¤³¤ì¤Ï¡¢ ¥ª¥Ú¥ì¡¼¥Æ¥£¥ó¥°¡¦¥·¥¹¥Æ¥à¤Ë¤è¤Ã¤Æ¥ì¥¸¥¹¥¿¤ÎÆâÍÆ¤¬Êݸ¤µ¤ì¤ë¤È¤­¤Î¥Ç¡¼¥¿·Á¼°¤¬¡¢ ¥æ¡¼¥¶¡¦¥×¥í¥°¥é¥à¤¬Ä̾ïǧ¼±¤·¤Æ¤¤¤ë¤â¤Î¤ÈƱ¤¸¤Ç¤Ï¤Ê¤¤¤³¤È¤ò°ÕÌ£¤·¤Æ¤¤¤Þ¤¹¡£ Î㤨¤Ð¡¢ 68881ÉâÆ°¾®¿ôÅÀ¥³¥×¥í¥»¥Ã¥µ¤Î¥ì¥¸¥¹¥¿¤ÎÃͤϾï¤Ëextended ¡Êraw¡Ë·Á¼°¤ÇÊݸ¤µ¤ì¤Æ¤¤¤Þ¤¹¤¬¡¢ C¸À¸ì¤Ë¤è¤ë¥×¥í¥°¥é¥à¤ÏÄ̾ïdouble ¡Êvirtual¡Ë·Á¼°¤òÁÛÄꤷ¤Æ¤¤¤Þ¤¹¡£ ¤³¤Î¤è¤¦¤Ê¾ì¹ç¡¢ GDB¤ÏÄÌ¾ï ¡Ê¥æ¡¼¥¶¡¦¥×¥í¥°¥é¥à¤Ë¤È¤Ã¤Æ°ÕÌ£¤Î¤¢¤ë·Á¼°¤Ç¤¢¤ë¡Ë virtual·Á¼°¤À¤±¤ò°·¤¤¤Þ¤¹¤¬¡¢ info registers¥³¥Þ¥ó¥É¤Ï¥Ç¡¼¥¿¤òξÊý¤Î·Á¼°¤Çɽ¼¨¤·¤Æ¤¯¤ì¤Þ¤¹¡£

Ä̾ ¥ì¥¸¥¹¥¿¤ÎÃͤϡ¢ ÁªÂò¤µ¤ì¤¿¥¹¥¿¥Ã¥¯¡¦¥Õ¥ì¡¼¥à ¡Êsee Selecting a frame¡Ë ¤È´Ø·¸¤ò»ý¤ÄÁêÂÐŪ¤ÊÃͤǤ¹¡£ ¤³¤ì¤Ï¡¢ ¥æ¡¼¥¶¤Ë¥ì¥¸¥¹¥¿¤ÎÃͤȤ·¤Æ¸«¤¨¤ë¤â¤Î¤Ï¡¢ ÁªÂò¤µ¤ì¤¿¥Õ¥ì¡¼¥à¤«¤é¸Æ¤Ó½Ð¤µ¤ì¤Æ¤¤¤ë¤¹¤Ù¤Æ¤Î¥¹¥¿¥Ã¥¯¡¦¥Õ¥ì¡¼¥à¤¬½ªÎ»¤·¡¢ ÂàÈò¤µ¤ì¤¿¥ì¥¸¥¹¥¿¤ÎÃͤ¬Éü¸µ¤µ¤ì¤¿¤È¤­¤Ë¡¢ ¤½¤Î¥ì¥¸¥¹¥¿¤¬»ý¤Ä¤Ç¤¢¤í¤¦ÃͤǤ¹¡£ ¥Ï¡¼¥É¥¦¥§¥¢¡¦¥ì¥¸¥¹¥¿¤ÎËÜÅö¤ÎÃͤòÃΤꤿ¤±¤ì¤Ð¡¢ ºÇ²¼°Ì¤Î¥Õ¥ì¡¼¥à¤ò ¡Ê‘frame 0¤Ç¡Ë ÁªÂò¤·¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó¡£

¤·¤«¤·¡¢ GDB¤Ï¡¢ ¥³¥ó¥Ñ¥¤¥é¤¬À¸À®¤·¤¿¥³¡¼¥É¤«¤é¡¢ ¤É¤³¤Ë¥ì¥¸¥¹¥¿¤¬Êݸ¤µ¤ì¤Æ¤¤¤ë¤«¤ò¿äÏÀ¤¹¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£ ÂàÈò¤µ¤ì¤Æ¤¤¤Ê¤¤¥ì¥¸¥¹¥¿¤¬¤¢¤ë¾ì¹ç¤ä¡¢ GDB¤¬ÂàÈò¤µ¤ì¤¿¥ì¥¸¥¹¥¿¤ò¸«¤Ä¤±¤ë¤³¤È¤¬¤Ç¤­¤Ê¤¤¾ì¹ç¤Ï¡¢ ¤É¤Î¥¹¥¿¥Ã¥¯¡¦¥Õ¥ì¡¼¥à¤òÁªÂò¤·¤Æ¤¤¤Æ¤â·ë²Ì¤ÏƱ¤¸¤Ç¤¹¡£

set rstack_high_address address

AMD 29000¥Õ¥¡¥ß¥ê¡¦¥×¥í¥»¥Ã¥µ¤Ç¤Ï¡¢ ¥ì¥¸¥¹¥¿¤Ï¡Ö¥ì¥¸¥¹¥¿¡¦¥¹¥¿¥Ã¥¯¡×¤È¸Æ¤Ð¤ì¤ë¤È¤³¤í¤ËÂàÈò¤µ¤ì¤Þ¤¹¡£ GDB¤Ë¤Ï¡¢ ¤³¤Î¥¹¥¿¥Ã¥¯¤ÎÂ礭¤µ¤òÃΤ뤳¤È¤Ï¤Ç¤­¤Þ¤»¤ó¡£ Ä̾ï GDB¤Ï¡¢ ¥¹¥¿¥Ã¥¯¤Ï½½Ê¬¤ËÂ礭¤¤¤ÈÁÛÄꤷ¤Þ¤¹¡£ ¤³¤Î¤¿¤á¤Ë¡¢ ¼ÂºÝ¤Ë¤Ï¸ºß¤·¤Ê¤¤¥á¥â¥ê°ÌÃÖ¤ò¡¢ GDB¤¬»²¾È¤·¤Æ¤·¤Þ¤¦¤³¤È¤¬¤¢¤ê¤¨¤Þ¤¹¡£ ɬÍפǤ¢¤ì¤Ð¡¢ set rstack_high_address¥³¥Þ¥ó¥É¤Ë¤è¤Ã¤Æ¥ì¥¸¥¹¥¿¡¦¥¹¥¿¥Ã¥¯¤ÎºÇ½ª¥¢¥É¥ì¥¹¤ò»ØÄꤹ¤ë¤³¤È¤Ë¤è¤Ã¤Æ¡¢ ¤³¤ÎÌäÂê¤ò²óÈò¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£ °ú¿ô¤Ï¥¢¥É¥ì¥¹¤Ç¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó¡£ ‘0x’¤òÀèÆ¬¤Ëµ­½Ò¤¹¤ë¤³¤È¤Ç¡¢ ¥¢¥É¥ì¥¹¤ò16¿Ê¿ô¤Ç»ØÄꤹ¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£

show rstack_high_address

AMD 29000¥Õ¥¡¥ß¥ê¡¦¥×¥í¥»¥Ã¥µ¤Ë¤ª¤±¤ë¥ì¥¸¥¹¥¿¡¦¥¹¥¿¥Ã¥¯¤Î¥«¥ì¥ó¥È¤Ê¾å¸Â¤òɽ¼¨¤·¤Þ¤¹¡£


Footnotes

(2)

¸¶Ãí¡§¤³¤ì¤Ï¡¢ ¥¹¥¿¥Ã¥¯¤¬¥á¥â¥ê¤Î²¼°ÌÊý¸þ¤Ë¿­Ä¹¤¹¤ë¥Þ¥·¥ó ¡ÊºÇ¶á¤Î¤Û¤È¤ó¤É¤Î¥Þ¥·¥ó¤¬¤½¤¦¤Ç¤¹¡Ë ¾å¤Ë¤ª¤¤¤Æ¡¢ ¥¹¥¿¥Ã¥¯¤«¤é1¥ï¡¼¥É¤ò¼è¤ê½ü¤¯ÊýË¡¤Ç¤¹¡£ ¤³¤ì¤Ï¡¢ ºÇ²¼°Ì¤Î¥¹¥¿¥Ã¥¯¡¦¥Õ¥ì¡¼¥à¤¬ÁªÂò¤µ¤ì¤Æ¤¤¤ë¤³¤È¤òÁÛÄꤷ¤Æ¤¤¤Þ¤¹¡£ ¤³¤ì°Ê³°¤Î¥¹¥¿¥Ã¥¯¡¦¥Õ¥ì¡¼¥à¤¬ÁªÂò¤µ¤ì¤Æ¤¤¤ë¤È¤­¤Ë¤Ï¡¢ $sp¤ËÃͤòÀßÄꤹ¤ë¤³¤È¤Ïµö¤µ¤ì¤Þ¤»¤ó¡£ ¥Þ¥·¥ó¡¦¥¢¡¼¥­¥Æ¥¯¥Á¥ã¤Ë°Í¸¤¹¤ë¤³¤È¤Ê¤¯¥¹¥¿¥Ã¥¯¤«¤é¥Õ¥ì¡¼¥àÁ´ÂΤò¼è¤ê½ü¤¯¤Ë¤Ï¡¢ return¤ò»ÈÍѤ·¤Þ¤¹¡£ See Returning from a function¡£