패키지 1 의 함수를 사용할 때 emacs가 충돌하는 이유를 디버깅하고 있습니다 . 이 디버그 프로세스의 목적은를 사용하여 제출할 유용한 데이터를 얻는 것 M-x report-emacs-bug
입니다.
emacs 충돌을 디버깅하는 방법에 대한 도움말을 보려면 이미 Emacs Manual-Crashing and Emacs Manual-After A Crash 를 보았지만 도움이되지 않았습니다.
후 충돌 설명서를 참조 emacs-buffer.gdb
하지만 난 그것을 사용하는 방법을 모른다. Google에 도움을 요청하는 동안 이 emacs.SE 질문을 발견하고 -ggdb3
플래그를 사용하여 emacs를 다시 컴파일했습니다 .
이전에 사용한 경험이 없으므로 파일 gdb
을 사용하려는 시도가 거의 실패했습니다 emacs-buffer.gbd
.
내가 시도한 것은 다음과 같습니다.
gdb -x /path/to/emacs-buffer.gdb
gdb
->file /path/to/emacs-buffer.gdb
gdb
->source /path/to/emacs-buffer.gdb
source /path/to/emacs-buffer.gdb
참고로, -ggdb3
플래그로 컴파일 된 emacs 는로드하는 데 약 10 초가 더 걸립니다. 이전에는 5-6 초, 현재 약 16-17 초였습니다. 내 init에서 그것을 계산하는 코드 때문에 정확한 초를 알고 있습니다. 이 시작 시간 증가가 예상됩니까?
각주 1 : undo-tree
특정 .org 파일 (공개적으로 공유 할 수 없음)에 대한 실행 취소 기록을 복원하려고 하면 emacs가 일관되게 충돌 합니다. 나는있다 (setq undo-tree-auto-save-history t)
. 이 충돌은 emacs 24.5가 아닌 emacs git master에서만 발생합니다. emacs 24.5에서는 undo-tree
실행 취소 히스토리 파일을 통해도 실행 취소 히스토리를로드 할 수 없다는 오류가 발생하지만 최소한 emacs 세션이 해당 버전에서 충돌하지 않습니다.
undue-tree
문제,하지만 넓은이 잠재력을 .
undo-tree
다른 사람이 정확한 충돌을 재현하기가 어렵다는 것을 알고 있기 때문에 구체적인 답변을 기대하지 않았습니다 . 또한이 충돌을 일으키는 유일한 org 파일 전체를 공유 할 수 없습니다. 그래서 나는 gdb
이 질문에 태그 만 적용했습니다 . 나는 답변을 통해 이맥스 충돌을 일반적으로 디버그하는 방법을 안내해 유용한 이맥스 버그 리포트를 제출할 수 있도록 뒷이야기를 들었다 .