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


17.1.1 ¥¨¥é¡¼¤Ë¤è¤ë¥Ç¥Ð¥Ã¥¬¤Îµ¯Æ°

¥Ç¥Ð¥Ã¥¬¤ØÆþ¤ë¤â¤Ã¤È¤â½ÅÍפʻþ´ü¤Ï¡¢Lisp¥¨¥é¡¼¤¬È¯À¸¤·¤¿¤È¤­¤Ç¤¹¡£ ¤³¤ì¤Ë¤è¤ê¡¢¥¨¥é¡¼¤ÎľÀܸ¶°ø¤òÄ´¤Ù¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£

¤·¤«¤·¡¢¥Ç¥Ð¥Ã¥¬¤ËÆþ¤ë¤Î¤Ï¡¢¥¨¥é¡¼¤ÎÄ̾ï¤Îµ¢·ë¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó¡£ ¿¤¯¤Î¥³¥Þ¥ó¥É¤Ï ¡Ê¥Ð¥Ã¥Õ¥¡¤ÎËöÈø¤ÇC-f¤ò»È¤¦¤Ê¤É¤Î¡ËÉÔŬÀڤ˵¯Æ°¤µ¤ì¤ë¤È ¤·¤Ð¤·¤ÐLisp¥¨¥é¡¼¤òÀ¸¤¸¤Þ¤¹¤¬¡¢ Ä̾ï¤ÎÊÔ½¸¤Ç¤Ï¤½¤Î¤¿¤Ó¤Ë¥Ç¥Ð¥Ã¥¬¤ËÆþ¤Ã¤¿¤Î¤Ç¤Ï¤È¤Æ¤âÉÔÊØ¤Ç¤¹¡£ ¤½¤Î¤¿¤á¡¢¥¨¥é¡¼¤Ë¤è¤Ã¤Æ¥Ç¥Ð¥Ã¥¬¤ËÆþ¤ê¤¿¤¤¾ì¹ç¤Ë¤Ï¡¢ ÊÑ¿ôdebug-on-error¤Ënil°Ê³°¤òÀßÄꤷ¤Þ¤¹¡£ ¡Ê¥³¥Þ¥ó¥Étoggle-debug-on-error¤Ï¤³¤ì¤ò´Êñ¤Ë¹Ô¤¦¡£¡Ë

User Option: debug-on-error

¤³¤ÎÊÑ¿ô¤Ï¡¢¥¨¥é¡¼¤¬ÄÌÃΤµ¤ì½èÍý¤µ¤ì¤Ê¤¤¤È¤­¤Ë ¥Ç¥Ð¥Ã¥¬¤ò¸Æ¤Ó½Ð¤¹¤«¤É¤¦¤«·èÄꤹ¤ë¡£ debug-on-error¤¬t¤Ç¤¢¤ë¤È¡¢ ¤¹¤Ù¤Æ¤Î¼ïÎà¤Î¥¨¥é¡¼¡Êdebug-ignored-errors¤Ë»ØÄꤷ¤¿¤â¤Î¤ò½ü¤¯¡Ë ¤Ï¥Ç¥Ð¥Ã¥¬¤ò¸Æ¤Ó½Ð¤¹¡£ nil¤Ç¤¢¤ë¤È¥Ç¥Ð¥Ã¥¬¤ò¸Æ¤Ó½Ð¤µ¤Ê¤¤¡£

¤½¤ÎÃͤϥǥХ嬤ò¸Æ¤Ó½Ð¤¹¥¨¥é¡¼¾ò·ï¤Î¥ê¥¹¥È¤Ç¤â¤è¤¤¡£ ¤¿¤È¤¨¤Ð¡¢¥ê¥¹¥È(void-variable)¤Ë¤¹¤ë¤È¡¢ ¡ÖÃͤò»ý¤¿¤Ê¤¤ÊÑ¿ô¤Ë´Ø¤·¤¿¥¨¥é¡¼¡×¤Î¤ß¤¬¥Ç¥Ð¥Ã¥¬¤òµ¯Æ°¤¹¤ë¡£

¤³¤ÎÊÑ¿ô¤¬nil°Ê³°¤Ç¤¢¤ë¤È¡¢ Emacs¤Ï¥×¥í¥»¥¹¤Î¥Õ¥£¥ë¥¿´Ø¿ô¤äÈÖʼ¤ËÂФ·¤Æ¥¨¥é¡¼¥Ï¥ó¥É¥é¤òºîÀ®¤·¤Ê¤¤¡£ ¤·¤¿¤¬¤Ã¤Æ¡¢¤³¤ì¤é¤Î´Ø¿ô¤Ç¤Î¥¨¥é¡¼¤â¥Ç¥Ð¥Ã¥¬¤òµ¯Æ°¤¹¤ë¡£ see Processes¡£

User Option: debug-ignored-errors

¤³¤ÎÊÑ¿ô¤Ï¡¢¥Ç¥Ð¥Ã¥¬¤ËÆþ¤é¤Ê¤¤¥¨¥é¡¼¤Î¼ïÎà¤ò»ØÄꤹ¤ë¡£ ¤½¤ÎÃͤϥ¨¥é¡¼¾ò·ï¥·¥ó¥Ü¥ë¤äÀµµ¬É½¸½¤Î¥ê¥¹¥È¤Ç¤¢¤ë¡£ ¥¨¥é¡¼¤Ë¤³¤ì¤é¤Î¾ò·ï¥·¥ó¥Ü¥ë¤¬´Þ¤Þ¤ì¤ë¤« ¥¨¥é¡¼¥á¥Ã¥»¡¼¥¸¤¬Àµµ¬É½¸½¤Î1¤Ä¤Ë°ìÃפ¹¤ë¾ì¹ç¤Ë¤Ï¡¢ debug-on-error¤ÎÃͤ˴ؤï¤é¤º Åö³º¥¨¥é¡¼¤Ç¤Ï¥Ç¥Ð¥Ã¥¬¤ËÆþ¤é¤Ê¤¤¡£

¤³¤ÎÊÑ¿ô¤ÎÄ̾ï¤ÎÃͤϡ¢ ÊÔ½¸¤Ç¤Ï¤·¤Ð¤·¤ÐȯÀ¸¤¹¤ë¤¬¡¢Lisp¥×¥í¥°¥é¥à¤Î¥Ð¥°¤Ç¤Ï¤Û¤È¤ó¤ÉȯÀ¸¤·¤Ê¤¤¤è¤¦¤Ê ¥¨¥é¡¼·²¤Î¥ê¥¹¥È¤Ç¤¢¤ë¡£ ¤·¤«¤·¡¢¡Ø¤Û¤È¤ó¤É¡Ù¤Ï¡Ø¤±¤Ã¤·¤Æ¡Ù¤Ç¤Ï¤Ê¤¤¡£ ¤³¤Î¥ê¥¹¥È¤Ë°ìÃפ¹¤ë¤è¤¦¤Ê¥¨¥é¡¼¤ÇÆÉ¼Ô¤Î¥×¥í¥°¥é¥à¤¬¼ºÇÔ¤¹¤ë¾ì¹ç¡¢ ¥¨¥é¡¼¤ò¥Ç¥Ð¥Ã¥°¤¹¤ë¤Ë¤Ï¤³¤Î¥ê¥¹¥È¤òÊѹ¹¤¹¤ëɬÍפ¬¤¢¤ë¡£ ¤â¤Ã¤È¤â´Êñ¤ÊÊýË¡¤Ï¡¢debug-ignored-errors¤Ënil¤ò ÀßÄꤹ¤ë¤³¤È¤Ç¤¢¤ë¡£

User Option: debug-on-signal

Ä̾condition-case¤ÇÊ᪤·¤¿¥¨¥é¡¼¤Ï¡¢ ¤¿¤È¤¨debug-on-error¤¬nil°Ê³°¤Ç¤¢¤Ã¤Æ¤â¡¢ ¤±¤Ã¤·¤Æ¥Ç¥Ð¥Ã¥¬¤òµ¯Æ°¤·¤Ê¤¤¡£ ¤¤¤¤¤«¤¨¤ì¤Ð¡¢¥Ç¥Ð¥Ã¥¬¤òµ¯Æ°¤¹¤ë¤Þ¤¨¤Ë¡¢ condition-case¤Ï¥¨¥é¡¼½èÍý¤Îµ¡²ñ¤òÆÀ¤ë¤Î¤Ç¤¢¤ë¡£

debug-on-signal¤Ënil°Ê³°¤ÎÃͤòÀßÄꤹ¤ë¤È¡¢ ³Æ¥¨¥é¡¼¤´¤È¤Ë¥Ç¥Ð¥Ã¥¬¤¬¤Þ¤ºµ¡²ñ¤òÆÀ¤ë¡£ debug-on-error¤Èdebug-ignored-errors¤ÎÃͤǻØÄꤵ¤ì¤ë ¾ò·ï¤Ë°ìÃפ¹¤ì¤Ð¡¢condition-case¤Ë´Ø¤ï¤é¤º ¥¨¥é¡¼¤Ï¥Ç¥Ð¥Ã¥¬¤òµ¯Æ°¤¹¤ë¡£

·Ù¹ð¡§ ¤³¤ÎÊÑ¿ô¤Ï¶¯ÎϤʽèÊý¤Ç¤¢¤ë¡ª Emacs¤Î¤µ¤Þ¤¶¤Þ¤ÊÉôʬ¤Ç¤ÏÄ̾ï¤Îưºî¤È¤·¤Æ¥¨¥é¡¼¤ò½èÍý¤·¡¢ ÆÉ¼Ô¤Ë¤Ï¥¨¥é¡¼¤¬È¯À¸¤·¤¿¤³¤È¤µ¤¨¤ï¤«¤é¤Ê¤¤¡£ debug-on-signal¤Ënil°Ê³°¤ÎÃͤòÀßÄꤹ¤ë¤È ¤½¤ì¤é¤Î¥¨¥é¡¼¤Ç¥Ç¥Ð¥Ã¥¬¤ËÆþ¤ë¡£

·Ù¹ð¡§ debug-on-error¤¬nil¤Ç¤¢¤ë¤È¡¢ debug-on-signal¤Ï°ÕÌ£¤ò»ý¤¿¤Ê¤¤¡£

¥Õ¥¡¥¤¥ë.emacs¤ò¥í¡¼¥ÉÃæ¤ËȯÀ¸¤¹¤ë¥¨¥é¡¼¤ò¥Ç¥Ð¥Ã¥°¤¹¤ë¤Ë¤Ï¡¢ ¥ª¥×¥·¥ç¥ó‘--debug-init’¤ò»È¤¤¤Þ¤¹¡£ ¤³¤ì¤Ë¤è¤ê¡¢.emacs¤Î¥í¡¼¥ÉÃæ¤Ïdebug-on-error¤òt¤Ë«Çû¤·¡¢ ½é´ü²½¥Õ¥¡¥¤¥ë¤Ç¤Î¥¨¥é¡¼¤òÊ᪤¹¤ëcondition-case¤ò±ª²ó¤·¤Þ¤¹¡£

ÆÉ¼Ô¤Î¥Õ¥¡¥¤¥ë.emacs¤Çdebug-on-error¤òÀßÄꤷ¤Æ¤â¡¢ ¤½¤Î¸ú²Ì¤Ï.emacs¤Î¥í¡¼¥É¤ò½ª¤ë¤È»ý³¤·¤Þ¤»¤ó¡£ ¡Ê¤³¤ì¤Ï¥³¥Þ¥ó¥É¹Ô¥ª¥×¥·¥ç¥ó‘--debug-init’¤Î¼ÂÁõ¤Ë¤ª¤±¤ë ¹¥¤Þ¤·¤¯¤Ê¤¤ÆÃÀ­¤Ç¤¢¤ë¡£¡Ë .emacs¤Çdebug-on-error¤ò¹±µ×Ū¤ËÀßÄꤹ¤ëºÇÎɤÎÊýË¡¤Ï¡¢ ¤Ä¤®¤Î¤è¤¦¤Ë¡¢after-init-hook¤òÍѤ¤¤ë¤³¤È¤Ç¤¹¡£

(add-hook 'after-init-hook
          '(lambda () (setq debug-on-error t)))