2010-05 / 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
2010-05-15 (土)
■ elisp でマクロを含んだ関数のデバッグに便利な方法 [Emacs]
マクロを含んだ関数のデバッグをするために、ステップ実行しようとする
と一瞬で終わってしまうことがあります。これについて、ツイッターでア
ドバイスをもらったので、調べてみました。
例えば以下のコードで、hoge() をステップ実行しようとすると
hoge-only の式に入れず、ミニバッファに Result: "ccc" と表示され
一瞬で終わってしまいます。
(defun hoge-p () t)
(defmacro hoge-only (&rest body)
`(cond
((not (hoge-p))
(message "This command can be used in hoge only"))
(t ,@body)))
(defun hoge ()
(hoge-only
(message "aaa")
(message "bbb")
(message "ccc")))
対策は簡単で、以下の S 式を評価するだけです。
(def-edebug-spec hoge-only t)
どこかで見たことあるなあと思ったら、mew-edebug.el でこれが使われて
いました。なぜ気づかない。。。
元になったつぶやきです。ありがとうございます。
http://twitter.com/masutaka/status/13920981205
└http://twitter.com/cvmat/status/13952793940
[
コメント |
メッセージ送信 |
固定リンク
]
2010-05 / 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
最終更新時間: 2010-09-05 06:00


