Debuguję, dlaczego emacs ulega awarii podczas używania funkcji z pakietu 1 . Celem tego procesu debugowania jest uzyskanie użytecznych danych do przesłania M-x report-emacs-bug.
Aby uzyskać pomoc na temat debugowania awarii emacsa, przejrzałem już Podręcznik Emacsa - Awarie i Podręcznik Emacsa - Po awarii , ale one nie pomogły.
Podręcznik After A Crash odnosi się do, emacs-buffer.gdbale nie mam pojęcia, jak go używać. Pytając google o pomoc, natknąłem się na to pytanie emacs.SE i ponownie skompilowałem emacsa używając -ggdb3flag.
Nie mam wcześniejszego doświadczenia z używaniem, gdbwięc próbowałem kilku nieudanych prób użycia emacs-buffer.gbdpliku.
Oto, co próbowałem:
gdb -x /path/to/emacs-buffer.gdbgdb->file /path/to/emacs-buffer.gdbgdb->source /path/to/emacs-buffer.gdbsource /path/to/emacs-buffer.gdb
Na marginesie, -ggdb3załadowanie emacsa skompilowanego z flagą zajmuje około 10 sekund dłużej; wcześniej było to 5-6 sekund, teraz około 16-17 sekund. Znam dokładne sekundy z powodu kodu, który oblicza to w moim init. Czy spodziewany jest wzrost czasu uruchamiania?
Przypis 1: emacs stale się zawiesza, gdy undo-treepróbuje przywrócić historię cofania dla określonego pliku .org (którego nie mogę udostępnić publicznie). Mam (setq undo-tree-auto-save-history t). Ta awaria zdarza się tylko na emacs git master, a nie na emacs 24.5. W undo-treesystemie emacs 24.5 zgłasza błąd informujący, że nie można załadować historii cofania (nawet za pośrednictwem pliku historii cofnięć), ale przynajmniej sesja emacs nie ulega awarii w tej wersji.
undue-treeproblemów, ale ma szerszy potencjał .
undo-treeodpowiedzi specyficznej, ponieważ wiem, że odtworzenie tej katastrofy byłoby trudne. Nie mogę też udostępnić całego pliku org, który jako jedyny wydaje się powodować awarię. Zastosowałem więc tylko gdbtag do tego pytania. Opowiedziałem tę historię, aby odpowiedzi pomogły mi w ogólnym debugowaniu awarii emacsa, dzięki czemu mogę złożyć użyteczny raport o błędach emacsa .