Next: , Previous: Variables, Up: Data   [Contents][Index]


8.3 ¿Í¹©ÇÛÎó

¥á¥â¥êÆâ¤ËϢ³Ū¤ËÇÛÃÖ¤µ¤ì¤Æ¤¤¤ëƱ°ì·¿¤Î¥ª¥Ö¥¸¥§¥¯¥È¤òɽ¼¨¤¹¤ë¤³¤È¤¬Ìò¤ËΩ¤Ä¤³¤È¤¬¤è¤¯¤¢¤ê¤Þ¤¹¡£ ÇÛÎó¤Î°ìÉô¤äưŪ¤Ë¥µ¥¤¥º¤Î·èÄꤵ¤ì¤ëÇÛÎó¤Ë¥¢¥¯¥»¥¹¤¹¤ë¤Î¤Ë¡¢ ¤½¤³¤Ø¤Î¥Ý¥¤¥ó¥¿¤·¤«¥×¥í¥°¥é¥àÆâÉô¤Ë¸ºß¤·¤Ê¤¤¤è¤¦¤Ê¾ì¹ç¤Ç¤¹¡£

¤³¤ì¤Ï¡¢ 2¹à±é»»»Ò‘@’¤ò»ÈÍѤ·¤Æ¡¢ Ϣ³¤·¤¿¥á¥â¥êÈϰϤò¿Í¹©ÇÛÎó¤È¤·¤Æ»²¾È¤¹¤ë¤³¤È¤Ç²Äǽ¤Ç¤¹¡£ ‘@’¤Îº¸Â¦¤Î¥ª¥Ú¥é¥ó¥É¤Ï¡¢ »²¾È¤·¤¿¤¤ÇÛÎó¤ÎºÇ½é¤ÎÍ×ÁǤǡ¢ ¤«¤Ä¡¢ 1¸Ä¤Î¥ª¥Ö¥¸¥§¥¯¥È¤Ç¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó¡£ ¤Þ¤¿¡¢ ±¦Â¦¤Î¥ª¥Ú¥é¥ó¥É¤Ï¡¢ ¤½¤ÎÇÛÎó¤ÎÃæ¤Î»²¾È¤·¤¿¤¤Éôʬ¤ÎŤµ¤Ç¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó¡£ ·ë²Ì¤Ï¡¢ ¤½¤ÎÍ×ÁǤ¬¤¹¤Ù¤Æº¸Â¦¤Î°ú¿ô¤ÈƱ·¿¤Ç¤¢¤ëÇÛÎó¤ÎÃͤǤ¹¡£ Âè1¤ÎÍ×ÁǤϺ¸Â¦¤Î°ú¿ô¤½¤Î¤â¤Î¤Ç¤¹¡£ Âè2¤ÎÍ×ÁǤϡ¢ Âè1¤ÎÍ×ÁǤòÊÝ»ý¤¹¤ë¥á¥â¥ê°è¤Îľ¸å¤Î¥á¥â¥ê¾å¤«¤é¼è¤é¤ì¤Þ¤¹¡£ ¤³¤ì°Ê¹ß¤ÎÍ×ÁÇ¤âÆ±ÍͤǤ¹¡£ °Ê²¼¤ËÎã¤ò¼¨¤·¤Þ¤¹¡£ ¥×¥í¥°¥é¥à¤¬°Ê²¼¤Î¤è¤¦¤Ë¤Ê¤Ã¤Æ¤¤¤ë¤È¤·¤Þ¤·¤ç¤¦¡£

int *array = (int *) malloc (len * sizeof (int));

°Ê²¼¤ò¼Â¹Ô¤¹¤ë¤³¤È¤Ç¡¢ array¤ÎÆâÍÆ¤òɽ¼¨¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£

p *array@len

@’¤Îº¸Â¦¤Î¥ª¥Ú¥é¥ó¥É¤Ï¡¢ ¥á¥â¥ê¾å¤Ë¼Âºß¤¹¤ë¤â¤Î¤Ç¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó¡£ ¤³¤Î¤è¤¦¤ÊÊýË¡¤Ç‘@’¤Ë¤è¤Ã¤ÆºîÀ®¤µ¤ì¤¿ÇÛÎó¤ÎÃͤϡ¢ ÇÛÎó¤Îź»úÉÕ¤±¤Î¸«ÃϤ«¤é¤Ï¾¤ÎÇÛÎó¤ÈƱÍͤ˿¶¤ëÉñ¤¤¡¢ ¼°¤ÎÃæ¤Ç»ÈÍѤµ¤ì¤¿¾ì¹ç¤Ï¶¯À©Åª¤Ë¥Ý¥¤¥ó¥¿¤È¤·¤Æ°·¤ï¤ì¤Þ¤¹¡£ ¿Í¹©ÇÛÎó¤Ï¡¢ °ìÅÙɽ¼¨¤µ¤ì¤¿¸å¡¢ ÃÍ¥Ò¥¹¥È¥ê ¡Êsee Value history¡Ë ¤òÄ̤·¤Æ¼°¤ÎÃæ¤Ë¸½¤ì¤ë¤³¤È¤¬¤è¤¯¤¢¤ê¤Þ¤¹¡£

¿Í¹©ÇÛÎó¤òºîÀ®¤¹¤ë¤â¤¦1¤Ä¤ÎÊýË¡¤Ï¡¢ ¥­¥ã¥¹¥È¤ò»ÈÍѤ¹¤ë¤³¤È¤Ç¤¹¡£ ¤³¤ì¤Ë¤è¤Ã¤Æ¡¢ ¤¢¤ëÃͤòÇÛÎó¤È¤·¤Æ²ò¼á¤·Ä¾¤·¤Þ¤¹¡£ ¤³¤ÎÃͤϡ¢ ¥á¥â¥ê¾å¤Ë¼Âºß¤¹¤ë¤â¤Î¤Ç¤Ê¤¯¤Æ¤â¤«¤Þ¤¤¤Þ¤»¤ó¡£

(gdb) p/x (short[2])0x12345678
$1 = {0x1234, 0x5678}

¥æ¡¼¥¶¤ÎÊØµ¹¤ò¹Íθ¤·¤Æ¡¢ ¡ÊÎ㤨¤Ð¡¢ ‘(type[])value’¤Î¤è¤¦¤Ë¡Ë ÇÛÎó¤ÎŤµ¤¬¾Êά¤µ¤ì¤¿¾ì¹ç ¤½¤ÎÃͤòËþ¤¿¤¹¥µ¥¤¥º¤ò ¡Ê‘sizeof(value)/sizeof(type)’¤Î¤è¤¦¤Ë¡Ë GDB¤¬·×»»¤·¤Þ¤¹¡£

(gdb) p/x (short[])0x12345678
$2 = {0x1234, 0x5678}

¤È¤­¤Ë¤Ï¡¢ ¿Í¹©ÇÛÎó¤Îµ¡¹½¤Ç¤Ï½½Ê¬¤Ç¤Ê¤¤¤³¤È¤¬¤¢¤ê¤Þ¤¹¡£ ¤«¤Ê¤êÊ£»¨¤Ê¥Ç¡¼¥¿¹½Â¤¤Ç¤Ï¡¢ ´Ø¿´¤Î¤¢¤ëÍ×ÁǤ¬Ï¢Â³Åª¤Ëʤó¤Ç¤¤¤Ê¤¤¤³¤È¤¬¤¢¤ê¤Þ¤¹¡£ Î㤨¤Ð¡¢ ÇÛÎó¤ÎÃæ¤Î¥Ý¥¤¥ó¥¿¤ÎÃͤ˴ؿ´¤¬¤¢¤ë¾ì¹ç¤Ç¤¹¡£ ¤³¤Î¤è¤¦¤Ê¾õ¶·¤Ë¤ª¤¤¤ÆÌò¤ËΩ¤Ä²óÈòºö¤Î1¤Ä¤Ë¡¢ ´Ø¿´¤Î¤¢¤ëÃͤΤ¦¤ÁºÇ½é¤Î¤â¤Î¤òɽ¼¨¤¹¤ë¼°¤ÎÃæ¤Î¥«¥¦¥ó¥¿¤È¤·¤Æ¥³¥ó¥Ó¥Ë¥¨¥ó¥¹ÊÑ¿ô ¡Êsee Convenience variables¡Ë ¤ò»ÈÍѤ·¡¢ RET¥­¡¼¤Ë¤è¤Ã¤Æ¤½¤Î¼°¤ò·«¤êÊÖ¤·¼Â¹Ô¤¹¤ë¤³¤È¤Ç¤¹¡£ Î㤨¤Ð¡¢ ¹½Â¤ÂΤؤΥݥ¤¥ó¥¿¤ÎÇÛÎódtab¤¬¤¢¤ê¡¢ ¸Ä¡¹¤Î¹½Â¤ÂΤΥե£¡¼¥ë¥Éfv¤ÎÃͤ˴ؿ´¤¬¤¢¤ë¤È¤·¤Þ¤·¤ç¤¦¡£ °Ê²¼¤Ë¡¢ ¤³¤Î¾ì¹ç¤ÎÎã¤ò¼¨¤·¤Þ¤¹¡£

set $i = 0
p dtab[$i++]->fv
RET
RET