elisp를 디버그하는 방법?
일반적으로 가장 쉬운 디버깅 방법은 printf
. emacs-lisp를 디버깅하려면 어떻게해야합니까? elisp에서 emacs 편집기로 무언가를 인쇄하려면 어떻게해야합니까? 아니면 elisp 코드를 디버깅하는 방법이 있습니까?
예를 들어 다음 코드가 .emacs
파일 에서 실행되는지 어떻게 확인할 수 있습니까?
(load "auctex.el" nil t t)
디버거 (edebug)는 사용하기 매우 간단합니다. 함수 정의로 이동하여 M-x edebug-defun. 다음에 호출 할 때 다른 모든 디버거와 마찬가지로 코드를 단계별로 실행할 수 있습니다. ?키 바인딩 목록을 입력 하거나 edebug 문서를 확인하세요 .
GNU Emacs에는 두 가지 디버거가 있습니다.
- edebug-여기에 다른 게시물에서 설명
- 디버그
나는 debug
. 다음은 일반적인 진입 점 (사용 방법)입니다.
M-x debug-on-entry
디버거를 사용하여 입력하려는 함수가 뒤 따릅니다.M-x toggle-debug-on-error
-오류가 발생하면 디버거로 들어갑니다.M-x toggle-debug-on-quit
-사용자가 눌렀을 때 디버거를 입력합니다 C-g.debug
코드의 특정 위치 (중단 점)에 함수 를 명시 적으로 호출하여 해당 위치에 디버거를 입력합니다.
(디버그)
를 사용하여 디버거를 단계별로 진행 d하거나 c특정 평가의 세부 정보를 건너 뜁니다.
값을 인쇄하는 데 유용합니다.
(message "Hello (%s)" foo)
그러나 데이터 구조에는 그렇게 잘 작동하지 않습니다. 이를 위해
(prin1 list-foo)
또는 (prin1-to-string)을 사용하여 (메시지)에 포함합니다.
가장 쉬운 디버깅 방법은 코드를 대화식으로 실행하는 것입니다. 표현식 뒤에 포인트를 놓고 C-x C-e( eval-last-sexp
)를 실행하여 lisp 버퍼에서이를 수행 할 수 있습니다 .
또는 :
(message "hello world")
C-h f message내장 메시지 기능에 대해 자세히 알아보십시오. 많은 메시지를 생성하는 경우 변수 message-log-max
를 더 큰 값 으로 사용자 정의 할 수 있습니다 .
질문에 하나씩 답변하려면 :
- 무언가를 인쇄하십시오 : 백만 가지 방법이 있습니다. (메시지 "Hello")는 문자열을 에코 영역에 넣습니다. ( "hello"삽입)은 문자열을 현재 버퍼에 넣습니다 ...
- 다음 코드가 실행되는지 어떻게 확인할 수 있습니까? "auctex.el"을 "frotzumotzulous"(즉, 실제 파일의 이름을 지정하지 않는 한 모든 문자열)로 바꾼 다음 오류 메시지가 표시되는지 확인하십시오. 오류가 없으면 코드가 실행되고 있지 않은 것입니다.
참조 URL : https://stackoverflow.com/questions/3257480/how-to-debug-elisp
'programing' 카테고리의 다른 글
JBoss에 핫 배포-JBoss가 변경 사항을 "보도록"하려면 어떻게해야합니까? (0) | 2021.01.18 |
---|---|
.git 프로젝트 디렉토리를 어떻게 숨기나요? (0) | 2021.01.18 |
개인 메서드를 지정하는 방법 (0) | 2021.01.18 |
git-add 동안 절대 파일 경로 지정을 피하는 방법 (0) | 2021.01.18 |
모든 텍스트에 대해 Android 앱에서 텍스트 색상을 설정하는 방법은 무엇입니까? (0) | 2021.01.18 |