Next: , Previous: Edebug, Up: Edebug   [Contents][Index]


17.2.1 edebug¤Î»È¤¤Êý

edebug¤ÇLisp¥×¥í¥°¥é¥à¤ò¥Ç¥Ð¥Ã¥°¤¹¤ë¤Ë¤Ï¡¢ ¥Ç¥Ð¥Ã¥°¤·¤¿¤¤Lisp¥³¡¼¥É¤ò¤Þ¤º½èÃÖ¡Êinstrument¡Ë¤·¤Æ¤ª¤¯É¬Íפ¬¤¢¤ê¤Þ¤¹¡£ ¤³¤ì¤ò¹Ô¤¦´Êñ¤ÊÊýË¡¤Ï¡¢´Ø¿ô¤ä¥Þ¥¯¥í¤ÎÄêµÁ¤Ë¥Ý¥¤¥ó¥È¤ò°Üư¤·¤Æ¤«¤é¡¢ C-u C-M-x¡ÊÁ°ÃÖ°ú¿ô¤ò»ØÄꤷ¤¿eval-defun¡Ë¤ò¼Â¹Ô¤·¤Þ¤¹¡£ ¥³¡¼¥É¤ò½èÃÖ¤¹¤ëÊ̤ÎÊýË¡¤Ë¤Ä¤¤¤Æ¤Ï¡¢See Instrumenting¡£

´Ø¿ô¤ò¤¤¤Ã¤¿¤ó½èÃÖ¤·¤Æ¤ª¤±¤Ð¡¢Åö³º´Ø¿ô¤ò¸Æ¤Ó½Ð¤¹¤Èedebug¤ò³èÀ­¤Ë¤·¤Þ¤¹¡£ edebug¤¬³èÀ­¤Ë¤Ê¤ë¤È¼Â¹Ô¤òÄä»ß¤·¡¢ ÆÉ¼Ô¤¬ÁªÂò¤·¤¿edebug¤Î¼Â¹Ô¥â¡¼¥É¤Ë±þ¤¸¤Æ¡¢ ´Ø¿ô¤ò¥¹¥Æ¥Ã¥×¼Â¹Ô¤·¤¿¤ê¥Ç¥Ð¥Ã¥°¥³¥Þ¥ó¥É¤ò¸¡ºº¤·¤Ê¤¬¤é ɽ¼¨¤ò¹¹¿·¤·¤Ä¤Ä¼Â¹Ô¤ò·Ñ³¤·¤Þ¤¹¡£ ¥Ç¥Õ¥©¥ë¥È¤Î¼Â¹Ô¥â¡¼¥É¤Ï¥¹¥Æ¥Ã¥×¼Â¹Ô¤Ç¤¢¤ê¡¢ ¤¤¤Ã¤¿¤ó¼Â¹Ô¤òÄä»ß¤·¤Þ¤¹¡£ See Edebug Execution Modes¡£

edebug¤Ç¤Ï¡¢¥Ç¥Ð¥Ã¥°Ãæ¤ÎLisp¥³¡¼¥É¤Î¥½¡¼¥¹¤ò ɽ¼¨¤·¤¿Emacs¥Ð¥Ã¥Õ¥¡¤òÆÉ¼Ô¤Ï¸«¤Þ¤¹¡£ ¤³¤Î¥Ð¥Ã¥Õ¥¡¤ò¥½¡¼¥¹¥³¡¼¥É¥Ð¥Ã¥Õ¥¡¤È¸Æ¤Ó¤Þ¤¹¡£ ¤³¤Î¥Ð¥Ã¥Õ¥¡¤Ï°ì»þŪ¤ËÆÉ¤ß½Ð¤·ÀìÍѤǤ¹¡£

º¸Ã¼¤ÎÌð°õ¤Ï¡¢´Ø¿ô¤Î¼Â¹ÔÃæ¤Î¹Ô¤òɽ¤·¤Þ¤¹¡£ ¥Ý¥¤¥ó¥È¤Î½é´ü°ÌÃ֤ϴؿô¤Î¼Â¹ÔÃæ¤Î¹Ô¤Ë¤¢¤ê¤Þ¤¹¤¬¡¢ ÆÉ¼Ô¼«¿È¤¬¥Ý¥¤¥ó¥È¤ò°Üư¤¹¤ë¤ÈÊѤï¤ê¤Þ¤¹¡£

¡Ê°Ê²¼¤Î¡Ëfac¤ÎÄêµÁ¤ò½èÃÖ¤·¤Æ¤«¤é(fac 3)¤ò¼Â¹Ô¤·¤¿¤È¤¹¤ë¤È¡¢ ¤Ä¤®¤Î¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¡£ ¥Ý¥¤¥ó¥È¤Ïif¤Î¤Þ¤¨¤Î³«¤­³ç¸Ì¤Ë¤¢¤ê¤Þ¤¹¡£

(defun fac (n)
=>∗(if (< 0 n)
      (* n (fac (1- n)))
    1))

edebug¤¬´Ø¿ôÆâ¤Ç¼Â¹Ô¤òÄä»ß¤Ç¤­¤ë²Õ½ê¤òÄä»ß°ÌÃÖ¡Êstop point¡Ë¤È¸Æ¤Ó¤Þ¤¹¡£ ¤³¤ì¤é¤Ï¡¢¥ê¥¹¥È¤Ç¤¢¤ë³ÆÉôʬ¼°¤ÎÁ°¸å¤È³ÆÊÑ¿ô»²¾È¤Î¤¦¤·¤í¤Ë¤¢¤ê¤Þ¤¹¡£ ´Ø¿ôfac¤ÎÃæ¤Ë¤¢¤ëÄä»ß°ÌÃÖ¤ò¥Ô¥ê¥ª¥É¤Ç¼¨¤·¤Þ¤¹¡£

(defun fac (n)
  .(if .(< 0 n.).
      .(* n. .(fac (1- n.).).).
    1).)

¥½¡¼¥¹¥³¡¼¥É¥Ð¥Ã¥Õ¥¡¤Ç¤Ï¡¢Emacs¤Îlisp¥â¡¼¥É¤Î¥³¥Þ¥ó¥É¤Ë²Ã¤¨¤Æ edebug¤ÎÆÃÊ̤ʥ³¥Þ¥ó¥É¤ò»È¤¨¤Þ¤¹¡£ ¤¿¤È¤¨¤Ð¡¢¤Ä¤®¤ÎÄä»ß°ÌÃ֤ޤǼ¹Ԥ¹¤ë¤Ë¤Ï edebug¥³¥Þ¥ó¥ÉSPC¤òÂǤÁ¤Þ¤¹¡£ fac¤ËÆþ¤Ã¤¿¤¢¤È¤ÇSPC¤ò1²óÂǤĤȡ¢ ¤Ä¤®¤Î¤è¤¦¤Êɽ¼¨¤Ë¤Ê¤ê¤Þ¤¹¡£

(defun fac (n)
=>(if ∗(< 0 n)
      (* n (fac (1- n)))
    1))

¼°¤Î¤¦¤·¤í¤Çedebug¤¬¼Â¹Ô¤òÄä»ß¤¹¤ë¤È¡¢ ¼°¤ÎÃͤò¥¨¥³¡¼Îΰè¤ËÃͤòɽ¼¨¤·¤Þ¤¹¡£

¿ÍѤµ¤ì¤ë¾¤Î¥³¥Þ¥ó¥É¤Ë¤Ï¡¢ Ää»ß°ÌÃ֤˥֥졼¥¯¥Ý¥¤¥ó¥È¤òÀßÄꤹ¤ëb¡¢ ¥Ö¥ì¡¼¥¯¥Ý¥¤¥ó¥È¤Ë㤹¤ë¤Þ¤Ç¼Â¹Ô¤¹¤ëg¡¢ edebug¤ò½ªÎ»¤·¤Æ¥È¥Ã¥×¥ì¥Ù¥ë¤Î¥³¥Þ¥ó¥É¥ë¡¼¥×¤ØÌá¤ëq¤¬¤¢¤ê¤Þ¤¹¡£ edebug¤Î¥³¥Þ¥ó¥É°ìÍ÷¤òɽ¼¨¤¹¤ë¤Ë¤Ï?¤òÂǤÁ¤Þ¤¹¡£