Next: , Previous: Infinite Loops, Up: Debugger   [Contents][Index]


17.1.3 ´Ø¿ô¸Æ¤Ó½Ð¤·»þ¤Î¥Ç¥Ð¥Ã¥¬¤Îµ¯Æ°

¥×¥í¥°¥é¥à¤ÎÅÓÃæ¤ÇȯÀ¸¤¹¤ëÌäÂêÅÀ¤òÄ´¤Ù¤ë¤¿¤á¤Î1¤Ä¤ÎÍ­ÍѤʵ»Ë¡¤Ï¡¢ ¤¢¤ë´Ø¿ô¤ò¸Æ¤Ó½Ð¤¹¤¿¤Ó¤Ë¥Ç¥Ð¥Ã¥¬¤ËÆþ¤ë¤³¤È¤Ç¤¹¡£ ÌäÂê¤òÀ¸¤¸¤ë´Ø¿ô¤ËÂФ·¤Æ¤³¤Î¤è¤¦¤Ë¤·¤Æ¤ª¤­¡¢ Åö³º´Ø¿ô¤ò¥¹¥Æ¥Ã¥×¼Â¹Ô¤¹¤ë¤«¡¢¤¢¤ë¤¤¤Ï¡¢ ÌäÂ꤬ȯÀ¸¤¹¤ëľÁ°¤Ë¸Æ¤Ð¤ì¤ë´Ø¿ô¤ËÂФ·¤Æ¤³¤Î¤è¤¦¤Ë¤·¤Æ¤ª¤­¡¢ ¤½¤Î´Ø¿ô¤Î¸Æ¤Ó½Ð¤·¤ò½ª¤¨¤Æ¤«¤é¡¢¸Æ¤Ó½Ð¤·Â¦¤ò¥¹¥Æ¥Ã¥×¼Â¹Ô¤·¤Þ¤¹¡£

¥³¥Þ¥ó¥É: debug-on-entry function-name

¤³¤Î´Ø¿ô¤Ï¡¢function-name¤¬¸Æ¤Ó½Ð¤µ¤ì¤ë¤¿¤Ó¤Ë ¥Ç¥Ð¥Ã¥¬¤òµ¯Æ°¤¹¤ë¤è¤¦¤Ë¤¹¤ë¡£ Åö³º´Ø¿ô¤ÎÄêµÁ¤ÎºÇ½é¤Î¥Õ¥©¡¼¥à¤È¤·¤Æ ¥Õ¥©¡¼¥à(debug 'debug)¤òÁÞÆþ¤¹¤ë¤³¤È¤Ç¤³¤ì¤ò¹Ô¤¦¡£

Lisp¥³¡¼¥É¤ÇÄêµÁ¤·¤¿Ç¤°Õ¤Î´Ø¿ô¤Ï¡¢ ²ò¼á¼Â¹Ô¥³¡¼¥É¤Ç¤¢¤í¤¦¤È¥³¥ó¥Ñ¥¤¥ëºÑ¤ß¤Î¥³¡¼¥É¤Ç¤¢¤í¤¦¤È¡¢ ´Ø¿ô¤ËÆþ¤ë¤È¤­¤Ë¥Ö¥ì¡¼¥¯¤¹¤ë¤è¤¦¤Ë¤Ç¤­¤ë¡£ ´Ø¿ô¤¬¥³¥Þ¥ó¥É¤Ç¤¢¤ë¤È¡¢Lisp¤«¤é¸Æ¤Ð¤ì¤¿¤È¤­¤ä ÂÐÏÃŪ¤Ë¸Æ¤Ð¤ì¤¿¤È¤­¤Ë¡Ê°ú¿ô¤òÆÉ¤ß¼è¤Ã¤Æ¤«¤é¡Ë¥Ç¥Ð¥Ã¥¬¤ËÆþ¤ë¡£ ¡ÊC¤Ç½ñ¤¤¤¿¡Ë´ðËÜ´Ø¿ô¤Ï¡¢¤³¤ÎÊýË¡¤Ç¤Ï¥Ç¥Ð¥Ã¥°¤Ç¤­¤Ê¤¤¡£

debug-on-entry¤òÂÐÏÃŪ¤Ë¸Æ¤Ó½Ð¤¹¤È¡¢ ¥ß¥Ë¥Ð¥Ã¥Õ¥¡¤Çfunction-name¤òÌ䤤¹ç¤ï¤»¤ë¡£ ¤½¤Î´Ø¿ô¤¬¤¹¤Ç¤Ë¸Æ¤Ó½Ð¤·»þ¤Ë¥Ç¥Ð¥Ã¥¬¤òµ¯Æ°¤¹¤ë¤è¤¦¤Ë¤Ê¤Ã¤Æ¤¤¤ë¤È¡¢ debug-on-entry¤Ï¤Ê¤Ë¤â¤·¤Ê¤¤¡£ debug-on-entry¤Ï¤Ä¤Í¤Ëfunction-name¤òÊÖ¤¹¡£

Ãí°Õ¡§ debug-on-entry¤ò»È¤Ã¤¿¤¢¤È¤ËÅö³º´Ø¿ô¤òºÆÄêµÁ¤¹¤ë¤È¡¢ ¥Ç¥Ð¥Ã¥¬¤ËÆþ¤ë¤¿¤á¤Î¥³¡¼¥É¤¬¤Ê¤¯¤Ê¤ë¡£ ¼Â¼ÁŪ¤Ë¤Ï¡¢´Ø¿ô¤òºÆÄêµÁ¤¹¤ë¤È¸Æ¤Ó½Ð¤·»þ¤Ë¥Ö¥ì¡¼¥¯¤¹¤ëµ¡Ç½¤ò ¼è¤ê¾Ã¤¹¤³¤È¤Ë¤Ê¤ë¡£

(defun fact (n)
  (if (zerop n) 1
      (* n (fact (1- n)))))
     ⇒ fact
(debug-on-entry 'fact)
     ⇒ fact
(fact 3)
------ Buffer: *Backtrace* ------
Entering:
* fact(3)
  eval-region(4870 4878 t)
  byte-code("...")
  eval-last-sexp(nil)
  (let ...)
  eval-insert-last-sexp(nil)
* call-interactively(eval-insert-last-sexp)
------ Buffer: *Backtrace* ------
(symbol-function 'fact)
     ⇒ (lambda (n)
          (debug (quote debug))
          (if (zerop n) 1 (* n (fact (1- n)))))
¥³¥Þ¥ó¥É: cancel-debug-on-entry function-name

¤³¤Î´Ø¿ô¤Ï¡¢function-name¤ËÂФ¹¤ëdebug-on-entry¤Î¸ú²Ì ¡Ê¸Æ¤Ó½Ð¤·»þ¤Ë¥Ö¥ì¡¼¥¯¤¹¤ë¡Ë¤ò¼è¤ê¾Ã¤¹¡£ ÂÐÏÃŪ¤Ë¸Æ¤Ó½Ð¤¹¤È¡¢ ¥ß¥Ë¥Ð¥Ã¥Õ¥¡¤Çfunction-name¤òÌ䤤¹ç¤ï¤»¤ë¡£ function-name¤¬nil¤Ç¤¢¤Ã¤¿¤ê¶õʸ»úÎó¤Ç¤¢¤ë¤È¡¢ ¤¹¤Ù¤Æ¤Î´Ø¿ô¤Ë¤Ä¤¤¤Æ¡¢¸Æ¤Ó½Ð¤·»þ¤Ë¥Ö¥ì¡¼¥¯¤¹¤ë¤³¤È¤ò¼è¤ê¾Ã¤¹¡£

¸Æ¤Ó½Ð¤·»þ¤Ë¥Ö¥ì¡¼¥¯¤¹¤ëÀßÄê¤ò¤·¤Æ¤¤¤Ê¤¤´Ø¿ô¤ËÂФ·¤Æ cancel-debug-on-entry¤ò¸Æ¤Ó½Ð¤·¤Æ¤â¤Ê¤Ë¤â¤·¤Ê¤¤¡£ ¤Ä¤Í¤Ëfunction-name¤òÊÖ¤¹¡£