Powiedzmy, że emacs generuje błąd, którego nie rozumiem. A może błąd mówi „Wartość symbolu jako zmienna jest nieważna: tryby”, ale modesw moim kodzie jest wiele wystąpień tego symbolu , więc potrzebuję trochę kontekstu. Czy Emacsa można skonfigurować tak, aby podawał numer wiersza kodu lisp, aby wiedzieć, który kod powoduje błąd?
Próbowałem to zrobić (setq stack-trace-on-error '(buffer-read-only))i uruchomiłem odpowiedni kod, aby uzyskać ślad stosu. Brak śladu stosu.
Próbowałem także wywołać edebug-defunmoją funkcję i przejść przez nią. Błąd pojawia się dopiero po wyjściu z funkcji.
(Naprawdę nie jestem tak zainteresowany przyczyną konkretnego błędu, jaki napotykam obecnie, jak rozwijaniem ogólnych umiejętności debugowania dla elisp. Proszę doradzić, jak mogę uzyskać numer linii, seksu lub ślad stosu z błąd.)
ta następnie przejściu do ewaluacji funkcji zgłaszania błędów)
debug-ignored-errorsczy nie zawiera żadnych błędów. Jeśli wybierzesz debug-on-signalopcję nilinną niż , i tak było w przypadku, gdy inny kod obsługiwał błąd, będziesz w stanie uzyskać błąd, zanim zrobi to drugi kod.
nildebug-on-error? Czy to nie pomaga?