오류가 이맥스 리스프 코드 신호, 그리고 경우 debug-on-error
이다 t
, 나는 오류가 발생한 위치를 쉽게 파악 할 수 백 트레이스 버퍼를 얻을. 그러나 네트워크의 응답을 비동기 적으로 처리하는 동안 발생하는 오류의 경우 백 트레이스 버퍼가 팝업되는 것이 성가 시므로 오류를 잡아서 condition-case
기록하십시오.
에서에서 오류를 처리 할 때 오류가 발생했을 때 condition-case
백 트레이스에 액세스하는 방법이 있습니까? backtrace
함수를 호출하면 핸들러 내에서 코드의 역 추적을 얻습니다. 이것은 내가 찾고있는 것이 아닙니다.
(condition-case e
(do-something-that-might-fail)
(error
(message "%s"
;; This gets the wrong backtrace!
(with-temp-buffer
(let ((standard-output (current-buffer)))
(backtrace)
(buffer-string))))))
그것은 비슷한 방식으로 스택을 관리하는 모든 언어의 일반적인 문제입니다. 이를 처리하는 방법은 이미 스택 정보가 첨부 된 오류를 알리는 것입니다. 즉, 귀하의 경우
—
wvxvw
do-something-that-might-fail
스택 추적 을 생성하여 발생하는 오류에 연결합니다.
debbugs.gnu.org/cgi/bugreport.cgi?bug=24617#8 제안이 있습니다 (직접 시도하지는 않았습니다)
—
npostavs
magithub-error
기능은 내가 생각하는 것과 비슷한 것을하지만 지금은 컴퓨터에 없습니다. 상관없이 도움이 될 수 있습니다.