「edebug-defun」をキャンセルする方法は?


12

の効果を元に戻すにはどうすればよいedebug-defunですか?言い換えるとedebug、特定の関数が呼び出されたときにデバッグモードに入るようにするディレクティブを無効にするにはどうすればよいですか?

また、私はこの質問に対する答えが文書のどこにあるかを本当に知りたいです。私はそれが必要だと思うよりもずっと長く探してきました...

回答:


15

から(info "(elisp) Instrumenting")

   To remove instrumentation from a definition, simply re-evaluate its
definition in a way that does not instrument.  There are two ways of
evaluating forms that never instrument them: from a file with `load',
and from the minibuffer with `eval-expression' (`M-:').

IOW、簡単な方法は、C-M-x接頭引数なしで(または、edebug-all-defs設定されている場合は接頭引数付きで)使用することです。


ありがとう!答えを見た後、私は答えを見つけた唯一の方法がすべてのEmacsとElispのドキュメントを線形検索することだったと確信しています。
kjo 16

FWIW一度にすべての定義からインストルメンテーションを削除する簡単な方法があればいいのですが(複数のファイルに散らばっていても)、それがわかりません。
YoungFrog 16

@kjo elispマニュアルのedebugセクションを開き、セクションを閲覧して見つけました。「edebug-defunの効果」が「計測」と呼ばれることを知っていることは確かに助けになりました。
YoungFrog 16

2
@kjoまた、M-x report-emacs-bug答えを探しているときに実際に試したことを言ってバグ()を報告すると、ドキュメントを改善できます。
YoungFrog 16

8

つまり、特定の関数が呼び出されたときにedebugがデバッグモードに入るようにするディレクティブを無効にするにはどうすればよいですか?

あなたは、設定することで、機器を取り外すことなく、この効果を得ることができますedebug-initial-modego。この方法では、ブレークポイントが設定されている場合にのみ、edebugで停止します。Emacs 25.1の時点では、次のようにしてすばやくこれを行うことができますedebug-set-initial-modeC-x C-a C-m g

(info "(elisp) Edebug Execution Modes")

‘g’
     Go: run until the next breakpoint (‘edebug-go-mode’).  *Note
     Breakpoints::.

[...]

When you enter a new Edebug level, the initial execution mode comes
from the value of the variable ‘edebug-initial-mode’ (*note Edebug
Options::).  By default, this specifies step mode.

[...]

Command: edebug-set-initial-mode

This command, bound to C-x C-a C-m, sets edebug-initial-mode. It
prompts you for a key to indicate the mode. You should enter one of
the eight keys listed above, which sets the corresponding mode.
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.