센티넬 및 글꼴 잠금 중 오류를 디버깅하는 방법


10

프로세스 센티넬 내부 또는 글꼴 잠금 중에 오류가 발생하면 debug-on-error이전에 활성화되어 있어도 Emacs는 역 추적을 표시하지 않습니다 .

이러한 오류가 발생하는 이유를 이해하고 역 추적을 제시하는 동안 동일한 오류가 다시 트리거 될 수 있습니다. 그러나 실제로 해당 오류를 디버깅하려는 경우별로 도움이되지 않습니다. 차라리 이맥스에서 작업하는 것보다 응답하지 않을 위험이 있습니다.

error in process sentinel: Wrong type argument: stringp, nil

결국 첫 번째가 미쳐지기 시작하면 두 번째 인스턴스를 시작할 수 있습니다. 이론적으로 센티넬에서 이러한 오류가 발생할 수있는 곳이 많을 때 더 많은 맥락이 도움이 될 것입니다.

debug-on-error효과가없는 경우에도 어떻게 Emacs가 역 추적을 보이도록 할 수 있습니까?


1
나는 emacs.stackexchange.com/questions/3552/…를 보았지만 하나의 특별한 경우가 아니라 일반적으로 이것에 관한 질문이 있어야한다고 생각합니다. 또한 나는 "use printf"가 유일한 대답이 아니기를 바랍니다. 왜냐하면 그것이 과거에 사용한 것이기 때문에 특히 만족스럽지 않습니다. 특히 오류가 "잘못된 얼굴 참조 : some-face-which-i-absolutely-know-know -exists "라는 메시지가 표시됩니다. 설치 한 거의 모든 패키지에 의해 실행될 수 있습니다.
tarsius

URL 은이 질문을 가리 키므로 귀하의 의견에 다소 혼란 스럽습니다. 고의적이거나 실수입니까?
wasamasa

이것이 내가 의미 한 문제입니다 : ttp : //emacs.stackexchange.com/questions/1045/how-to-debug-startup-problem-if-debug-init-has-no-effect
tarsius

링크 tarsius 의도 : emacs.stackexchange.com/questions/1045/… ug-init-has-no-effect
dcorking

답변:


10

프로세스 센티넬에 대해서는 좋은 이유가 없다고 생각합니다. IOWC는 이것이 누락 된 기능이라고 생각하므로 제안합니다 M-x report-emacs-bug.

글꼴 잠금의 경우 실제로 발생하는 문제는 jit-lock 중, 즉 재표시 중에 오류가 발생하고 그 순간에 디버거에 쉽게 들어갈 수 없기 때문에 문제가 더 까다로워집니다. 작동하지만 심각한 문제가 여전히 있습니다). 따라서 다음 방법 중 하나로 디버깅 할 수 있습니다.

  • M-x jit-lock-debug-mode 다시 표시 한 직후 jit-lock이 실행되도록 변경하여 디버거에 들어갈 수 있습니다.
  • M-: (setq font-lock-support-mode nil) RET그런 다음 글꼴 잠금을 비활성화 + 다시 활성화하십시오. 이런 식으로 font-lock은 jit-lock을 더 이상 사용하지 않으므로 후속 재 표시가 아닌 사용자의 명령 중에 실행됩니다.

실제로 debug-on-error는 프로세스 센티넬에서 잘 작동하는 것 같습니다.
Stefan

@tarsius-당신의 debbug 이슈에 대한 링크를 게시하십시오
dcorking

tarsius의 기능 요청은 19432 이며 재현 할 수없는 것으로 태그되었습니다. Stefan Monnier --eval대신 에 사용하는 해결 방법을 게시했습니다 --debug-init . 또한 자신의 해결 방법은 내 실제의 역 추적에 드롭 도움이되지 않습니다.emacs.d
dcorking

1
@ dcorking : 아니오, 버그 # 19432에서 "해결 방법"을 게시하지 않았지만 그의 버그를 재현하지 못했습니다. 왜 문제를 재현하기 위해 레시피를 보내지 않습니까?
Stefan
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.