`edebug-defun`을 취소하는 방법?


13

효과를 취소하려면 어떻게합니까 edebug-defun? 즉, edebug특정 함수가 호출 될 때 디버깅 모드로 들어가게 하는 지시문을 어떻게 철회 합니까?

또한이 질문에 대한 답이 문서에서 어디에 있는지 알고 싶습니다. 나는 그것이 필요하다고 생각하는 것보다 훨씬 오래 찾았습니다 ...

답변:


16

보낸 사람 (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

FWIW 한 번에 모든 정의 에서 계측을 제거하는 쉬운 방법이 있었으면 좋겠다 .
YoungFrog

@kjo elisp 매뉴얼에서 edebug 섹션을 열고 섹션을 탐색하여 발견했습니다. "edebug-defun의 영향"을 "악기"라고하는 것은 확실히 도움이됩니다.
YoungFrog

2
@kjo 또한, M-x report-emacs-bug답변을 찾을 때 실제로 시도한 것을 말 하여 버그 ( )를보고하면 문서를 개선 할 수 있습니다.
YoungFrog

9

즉, 특정 함수가 호출 될 때 edebug가 디버깅 모드로 들어가도록하는 지시문을 어떻게 철회합니까?

당신은 설정하여 계측을 제거하지 않고이 효과를 얻을 수 있습니다 edebug-initial-modego. 이 방법으로 중단 점 세트가있는 경우에만 edebug에서 중지됩니다. Emacs 25.1부터 다음을 사용하여이 작업을 빠르게 수행 할 수 있습니다 edebug-set-initial-mode.C-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.