Next: Instrumenting, Previous: Edebug, Up: Edebug [Contents][Index]
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¤Î¥³¥Þ¥ó¥É°ìÍ÷¤òɽ¼¨¤¹¤ë¤Ë¤Ï?¤òÂǤÁ¤Þ¤¹¡£