Ich benutze mew für meine E-Mail. Ich muss TLS mit meinem E-Mail-Anbieter für SMTP verwenden. Beim Versuch, das aufzurufen, friert Emacs jedoch ein.
Ich möchte diese Gelegenheit nutzen, um mehr über Emacs-Pakete zu erfahren. Wie würde ich dieses Problem beheben? Gibt es einen eingebauten Debugger wie in Common Lisp? Könnte ich die Protokollierung verwenden?
debugging
quitting
frozen-emacs
Svante
quelle
quelle
M-x debug-on-entry THE-COMMAND
und dann mitd
(oder manchmalc
, um einige Schritte zu überspringen) den Debugger durchlaufen. Lassen Sie den Quellcode in einem anderen Frame geöffnet, damit Sie verfolgen können, was der Debugger tut. Berichten Sie hier, was Sie sehen, oder, wenn Sie der Meinung sind, dass es sich um einen Emacs-Fehler handelt, verwenden SieM-x report-emacs-bug
.Antworten:
Bevor
gdb
Sie auf ein Unix-y-Betriebssystem zurückgreifen , können Sie versuchen, esSIGUSR2
an den Emacs-Prozess zu senden , wie in derDEBUG
in der anderen Antwort erwähnten Datei dokumentiert .Dadurch versucht Emacs, aus seiner aktuellen Schleife in den Lisp-Debugger auszubrechen.
Oder verwenden Sie diesen einen Liner, ohne Emacs PID manuell einzugeben:
Alternativ, falls
killall
verfügbar:quelle
/
zu suchenemacs
undk
zu senden. Activity Monitor auf einem Mac kann dies auch tun (über das Menü: Ansicht | Signal an Prozess senden).Wenn das Einfrieren bei einem Treffer
C-g
verschwindet, können Sie den integrierten Debugger verwenden. Geben SieM-x toggle-debug-on-quit
vor dem Senden der Nachricht ein, drückenC-g
Sie , wenn die Nachricht einfriert, und überprüfen Sie den*Backtrace*
Puffer, der angezeigt wird.Wenn
C-g
dies nicht hilft, passiert das Einfrieren wahrscheinlich im C-Code und Sie müssen einen externen Debugger wie verwendengdb
. Klicken SieC-h C-d
auf, um dieDEBUG
Datei anzuzeigen, die einige Hinweise dazu enthält. (Sie können die DEBUG-Datei auch in der Emacs-Repository-Weboberfläche lesen .) In dieser Antwort erfahren Sie mehr über die Verwendunggdb
mit Emacs.quelle
C-g
mehrmals:C-g C-g C-g
.Quitting
. Wie habe ich das gefunden?C-h r i
, dann tippe "Cg" und drückeRET
.