this question에 따르면 변수 *DEBUGGER-HOOK*
을 사용자 정의하여 디버거 대신 REPL로 되돌릴 수 있습니다. ~/.sbclrc에이 줄을 추가했는데 명령 줄에서 sbcl을 시작하면 모두 괜찮습니다.이맥스에서 꺼짐 디버거 SLIME
(setf *debugger-hook* #'(lambda (c h) (declare (ignore h)) (print c) (abort)))
그러나 위의 내용은 Emacs SLIME에서 작동하지 않습니다. 파일 (C-C C-k)을 컴파일 /로드 할 때마다 디버거를 계속 호출합니다 (계산 중단, 재시작, 새 값 입력 등의 옵션 사용). 어떻게하면 SLIME에 오류 메시지를 출력하고 다시 최상위로 보내 줄 것을 요청할 수 있습니까? 그렇습니다. 이전과 마찬가지로 SBCL 및 ~/.sbclrc와 동일합니다. SLIME이 사용자의 설정 인 *DEBUGGER-HOOK*
을 따르지 않는 것 같습니다.
'* DEBUGGER-HOOK *'는 구현의 디버거를 가리킨다 고 생각합니다. 그것은 표준의 일부입니다. 그래서, 저는 슬림이 그것을 존중할 필요가 있다고 생각하지 않습니다. –
@FaheemMitha 예, 그것은 Common Lisp 표준의 일부입니다 : http://clhs.lisp.se/Body/v_debugg.htm –