Wenn ich den globalen Debug-Modus zum ersten Mal in einer Emacs-Sitzung umschalte und versuche, ein Stück ungültigen Lisp zu starten, erscheint das Backtrace-Fenster. Wenn ich jedoch dieses Fenster schließe und den Backtrace-Puffer lösche und dann versuche, einen weiteren Teil ungültiger Elisp auszuführen, wird der Backtrace-Puffer nicht mehr erzeugt, und es erscheint kein Fenster mehr. Ich habe durch das Handbuch geschaut, um herauszufinden, warum dies ohne Erfolg geschieht, jede Hilfe wäre sehr geschätzt.Elisp Debugger wird nicht angezeigt
Antwort
Das Problem ist, dass die *Backtrace*
Puffer Töten Sie den Debugger verlassen nicht wirklich machen (im Gegensatz c
oder q
zu schlagen), so dass Sie immer noch in der rekursiven bearbeiten sind, wo weitere Debuggen deaktiviert ist (so wie Springen zu vermeiden weiter in den Debugger Ad-Nauseam).
Ich empfehle Ihnen, C-]
zu verwenden, um aus dieser Situation herauszukommen. Aber ich empfehle auch, dass Sie dies mit M-x report-emacs-bug
ablegen, da es sinnvoll wäre, den Debugger zu beenden, wenn der Backtrace-Puffer beendet wird.
+1. Außerdem: (1) Wenn die aktuelle rekursive Bearbeitung ein Backtrace-Puffer ist, können Sie 'C-x 4 b * Backtrace *' verwenden, um sie zu besuchen. (2) 'M-x top-level' bringt Sie auf die oberste Ebene und verlässt die * alle * Ebenen rekursiver Bearbeitungen. – Drew
- 1. Warum wird mein modifiziertes JavaScript nicht im Debugger angezeigt?
- 2. Wie wird die Array-Länge im Eclipse-Debugger angezeigt?
- 3. Adorner wird nicht angezeigt
- 4. Hintergrundbild wird nicht angezeigt
- 5. Dialogfeld wird nicht angezeigt
- 6. SiteMapPath wird nicht angezeigt
- 7. Hintergrundbild wird nicht angezeigt
- 8. UICollectionViewCell wird nicht angezeigt
- 9. ViewPagerIndicator wird nicht angezeigt
- 10. Programm wird nicht angezeigt
- 11. Fenster wird nicht angezeigt
- 12. Hintergrundbild wird nicht angezeigt
- 13. Jqxgrid wird nicht angezeigt
- 14. Benachrichtigung wird nicht angezeigt
- 15. Menükomponente wird nicht angezeigt
- 16. ValidationSummary wird nicht angezeigt
- 17. Paginierung wird nicht angezeigt
- 18. JMenuBar wird nicht angezeigt
- 19. JFrame wird nicht angezeigt
- 20. CAGradientLayer wird nicht angezeigt?
- 21. PagerTabStrip wird nicht angezeigt
- 22. CKEditor - Wird nicht angezeigt
- 23. Objekteigenschaft wird nicht angezeigt
- 24. BusyIndicator wird nicht angezeigt
- 25. Navigationsansicht wird nicht angezeigt
- 26. UIActivityIndicator wird nicht angezeigt
- 27. Schatten wird nicht angezeigt
- 28. RecyclerView wird nicht angezeigt
- 29. detailTextLabel wird nicht angezeigt
- 30. Fremdschlüsselwert wird nicht angezeigt
Vielleicht befinden Sie sich immer noch in 'rekursive-edit', was normalerweise in der Modus-Zeile von' ['und'] 'zu sehen ist. Sie müssen den 'recursive-edit' beenden, bevor der' * backtrace * 'Puffer wieder erscheint. Das Auswerten von '(Top-Level)' funktioniert und es gibt andere Methoden, um den Debugger ordnungsgemäß zu beenden. – lawlist
Danke! Das war in der Tat das Problem. Ich werde auf rekursive Bearbeitung lesen müssen. Dies geschieht, wenn ich den Puffer anstelle von q drücke, so nehme ich die Funktion an, die der Schlüssel lokal gebunden ist, um die rekursive Bearbeitung zu beenden. –
Um die Schlüssel in der Debugger-Modus-Map zu sehen, können Sie 'M-x Beschreibungsmodus RET' eingeben, während der Punkt im '* Backtrace *' - Puffer liegt. Oder Sie können es jederzeit sehen, indem Sie 'M-x beschreiben-Variable RET Debugger-Modus-Map RET 'eingeben. In diesem speziellen Fall ist "q" an die "oberste Ebene" gebunden. Die Funktion 'exit-recursive-edit' wird nur auf einer Ebene zurückgesetzt - es können viele Ebenen aktiv sein. Die Funktion 'abort-recursive-edit' beendet alle Ebenen. Die Funktion 'top-level' hat eine doc-Zeichenkette, die besagt:" * Alle rekursiven Bearbeitungsebenen verlassen. Dies beendet auch alle aktiven Minibuffer. * " – lawlist