Używam mew do mojego e-maila. Muszę używać TLS z moim dostawcą poczty e-mail dla SMTP. Jednak gdy próbuję to przywołać, Emacs zawiesza się.
Chciałbym skorzystać z okazji, aby dowiedzieć się więcej o pakietach Emacsa. Jak mam przejść do debugowania tego problemu? Czy jest jakiś wbudowany debugger, taki jak w Common Lisp? Czy mogę użyć rejestrowania?
debugging
quitting
frozen-emacs
Svante
źródło
źródło
M-x debug-on-entry THE-COMMAND
, a następnie przejdź przez debugger za pomocąd
(lub czasamic
pomiń niektóre kroki). Trzymaj kod źródłowy otwarty w innej ramce, abyś mógł śledzić, co robi debugger. Zgłoś, co tu widzisz lub, jeśli uważasz, że sugeruje to błąd Emacsa, używającM-x report-emacs-bug
.Odpowiedzi:
Zanim zaczniesz uciekać się
gdb
, jeśli używasz systemu operacyjnego Unix-y, możesz spróbować wysłaćSIGUSR2
go do procesu Emacsa, jak udokumentowano wDEBUG
pliku wymienionym w innej odpowiedzi.Spowoduje to, że Emacs spróbuje wydostać się z bieżącej pętli do debuggera Lisp.
Lub użyj tej jednej linijki bez ręcznego wpisywania emacs pid:
Alternatywnie, jeśli
killall
jest dostępny:źródło
/
szukaćemacs
ik
wysłać sygnał. Monitor aktywności na komputerze Mac może to również zrobić (z menu: Widok | Wyślij sygnał do przetwarzania).Jeśli zamrożenie zniknie po trafieniu
C-g
, możesz użyć wbudowanego debugera. WpiszM-x toggle-debug-on-quit
przed wysłaniem wiadomości, naciśnij,C-g
gdy się zawiesza, i sprawdź*Backtrace*
bufor, który się pojawi.Jeśli
C-g
to nie pomoże, prawdopodobnie zamrożenie występuje w kodzie C i będziesz musiał użyć zewnętrznego debuggera, takiego jakgdb
. Kliknij,C-h C-d
aby zobaczyćDEBUG
plik, który zawiera pewne wskazówki, jak to zrobić. (Możesz również odczytać plik DEBUG w interfejsie internetowym repozytorium Emacs .) Ta odpowiedź zawiera więcej szczegółów na temat korzystaniagdb
z Emacsa.źródło
C-g
kilka razy:C-g C-g C-g
.Quitting
. Jak to znalazłem?C-h r i
, a następnie wpisz „Cg” i naciśnijRET
.