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


17.2.13 ¥«¥Ð¥ì¥Ã¥¸¥Æ¥¹¥È

edebug¤Ç¤Ï¡¢½éÊâŪ¤Ê¥«¥Ð¥ì¥Ã¥¸¥Æ¥¹¥È¤ä¼Â¹ÔÉÑÅÙ¤òɽ¼¨¤Ç¤­¤Þ¤¹¡£

¥«¥Ð¥ì¥Ã¥¸¥Æ¥¹¥È¤Ç¤Ï¡¢³Æ¼°¤Î·ë²Ì¤ò°ÊÁ°¤Î·ë²Ì¤ÈÈæ³Ó¤·¤Þ¤¹¡£ ¸½ºß¤ÎEmacs¥»¥Ã¥·¥ç¥ó¤Ç¥«¥Ð¥ì¥Ã¥¸¥Æ¥¹¥È¤ò»Ï¤á¤Æ°Ê¹ß¡¢ ¥×¥í¥°¥é¥à¤Î³Æ¥Õ¥©¡¼¥à¤¬°Û¤Ê¤ë2¤Ä¤ÎÃͤòÊÖ¤»¤Ð¡¢ Åö³º¥Õ¥©¡¼¥à¤ò¡Ø¥«¥Ð¡¼¤·¤¿¡Ù¤È¤ß¤Ê¤·¤Þ¤¹¡£ ¤·¤¿¤¬¤Ã¤Æ¡¢ÆÉ¼Ô¤Î¥×¥í¥°¥é¥à¤Ë¤Ä¤¤¤Æ¥«¥Ð¥ì¥Ã¥¸¥Æ¥¹¥È¤ò¹Ô¤¦¤Ë¤Ï¡¢ ¤µ¤Þ¤¶¤Þ¤Ê¾ò·ï¤Ç¤½¤ì¤ò¼Â¹Ô¤·¤ÆÀµ¤·¤¯Æ°ºî¤·¤Æ¤¤¤ë¤«Ãí°Õ¤·¤Þ¤¹¡£ ÆÉ¼Ô¤¬³Æ¥Õ¥©¡¼¥à¤¬°Û¤Ê¤ë2¤Ä¤ÎÃͤòÊÖ¤¹¤è¤¦¤Ë»î¹Ô¤·½ª¤ì¤Ð¡¢ edebug¤Ï¤½¤Î¤è¤¦¤ËÄÌÃΤ·¤Þ¤¹¡£

¥«¥Ð¥ì¥Ã¥¸¥Æ¥¹¥È¤Ï¼Â¹Ô®ÅÙ¤òÃÙ¤¯¤¹¤ë¤Î¤Ç¡¢ edebug-test-coverage¤¬nil°Ê³°¤Î¾ì¹ç¤Ë¤Î¤ß¥Æ¥¹¥È¤·¤Þ¤¹¡£ ¤¹¤Ù¤Æ¤Î½èÃֺѤߴؿô¤Î¼Â¹Ô¤Ë´Ø¤¹¤ëÉÑÅÙ¿ô·×¬¤Ï¡¢ ÈóÄä»ß¼Â¹Ô¥â¡¼¥É¤Ç¤¢¤Ã¤Æ¤â¥«¥Ð¥ì¥Ã¥¸¥Æ¥¹¥È¤Î¥ª¥ó¡¿¥ª¥Õ¤Ë´Ø¤ï¤é¤º¹Ô¤¤¤Þ¤¹¡£

¤¢¤ëÄêµÁ¤Ë´Ø¤¹¤ë¥«¥Ð¥ì¥Ã¥¸¥Æ¥¹¥È¤ÈÉÑÅÙ¿ô·×¬¤òɽ¼¨¤¹¤ë¤Ë¤Ï M-x edebug-display-freq-count¤ò»È¤¤¤Þ¤¹¡£

¥³¥Þ¥ó¥É: edebug-display-freq-count

¤³¤Î¥³¥Þ¥ó¥É¤Ï¡¢¸½ºß¤ÎÄêµÁ¤Î³Æ¹Ô¤Ë¤Ä¤¤¤ÆÉÑÅÙ¿ô¥Ç¡¼¥¿¤òɽ¼¨¤¹¤ë¡£

ÉÑÅÙ¿ô¤Ï¡¢¥³¡¼¥É¤Î³Æ¹Ô¤Î¤¢¤È¤Ë¥³¥á¥ó¥È¹Ô¤È¤·¤ÆÉ½¼¨¤µ¤ì¡¢ ¥³¥Þ¥ó¥Éundo¤Ç¤½¤ì¤é¤Î¥³¥á¥ó¥È¹Ô¤ÎÁÞÆþ¤ò¥¢¥ó¥É¥¥¤Ç¤­¤ë¡£ ÉÑÅÙ¿ô¤Ï¡¢¼°¤Î¤Þ¤¨¤Î‘(’¤ä¼°¤Î¤¦¤·¤í¤Î‘)’¤Îľ²¼¡¢ ¤¢¤ë¤¤¤Ï¡¢ÊÑ¿ô¤ÎºÇ¸å¤Îʸ»ú¤Ëɽ¼¨¤µ¤ì¤ë¡£ ɽ¼¨¤ò´ÊÁǤˤ¹¤ë¤¿¤á¤Ë¡¢ÉÑÅÙ¿ô¤¬Æ±¤¸¹Ô¤Î¤Þ¤¨¤Î¤Û¤¦¤Î¼°¤ÎÉÑÅÙ¿ô¤ÈƱ¤¸¤Ç¤¢¤ë¤È ɽ¼¨¤·¤Ê¤¤¡£

¼°¤ÎÉÑÅÙ¿ô¤Ë³¤¯Ê¸»ú‘=’¤Ï¡¢ ¤½¤Î¼°¤òɾ²Á¤¹¤ë¤¿¤Ó¤ËƱ¤¸ÃͤòÊÖ¤·¤¿¤³¤È¤ò°ÕÌ£¤¹¤ë¡£ ¤¤¤¤¤«¤¨¤ì¤Ð¡¢¥«¥Ð¥ì¥Ã¥¸¥Æ¥¹¥È¤È¤·¤Æ¤Ï¡¢ ¤½¤Î¼°¤Ï¤Þ¤À¡Ø¥«¥Ð¡¼¤·¤Æ¡Ù¤¤¤Ê¤¤¤³¤È¤Ë¤Ê¤ë¡£

¤¢¤ëÄêµÁ¤Ë´Ø¤¹¤ëÉÑÅÙ¿ô·×¬¤È¥«¥Ð¥ì¥Ã¥¸¥Ç¡¼¥¿¤ò¥¯¥ê¥¢¤¹¤ë¤Ë¤Ï¡¢ eval-defun¤Çñ¤ËºÆ½èÃÖ¤¹¤ì¤Ð¤è¤¤¡£

¤¿¤È¤¨¤Ð¡¢edebug-test-coverage¤òt¤È¤·¡¢ ¥½¡¼¥¹¾å¤Î¥Ö¥ì¡¼¥¯¥Ý¥¤¥ó¥È¤òÀßÄꤷ¤Æ(fac 5)¤òɾ²Á¤¹¤ë¤È¡¢ ¥Ö¥ì¡¼¥¯¥Ý¥¤¥ó¥È¤Ë㤷¤¿¤È¤­¤ÎÉÑÅÙ¿ô¥Ç¡¼¥¿¤Ï¤Ä¤®¤Î¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¡£

(defun fac (n)
  (if (= n 0) (edebug))
;#6           1      0 =5 
  (if (< 0 n)
;#5         = 
      (* n (fac (1- n)))
;#    5               0  
    1))
;#   0 

¥³¥á¥ó¥È¹Ô¤Ï¡¢fac¤¬6²ó¸Æ¤Ð¤ì¤¿¤³¤È¤òɽ¤·¤Þ¤¹¡£ ºÇ½é¤Îifʸ¤Ï¡¢5²ó¤È¤âƱ¤¸·ë²Ì¤òÊÖ¤·¤¿¤Î¤Ç¤¹¡£ 2ÈÖÌܤÎif¤Ë¤Ä¤¤¤Æ¤âƱ¤¸¤Ç¤¹¡£ fac¤ÎºÆµ¢¸Æ¤Ó½Ð¤·¤Ï1ÅÙ¤âÌá¤Ã¤Æ¤¤¤Þ¤»¤ó¡£