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.gdb
ale 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 -ggdb3
flag.
Nie mam wcześniejszego doświadczenia z używaniem, gdb
więc próbowałem kilku nieudanych prób użycia emacs-buffer.gbd
pliku.
Oto, co próbowałem:
gdb -x /path/to/emacs-buffer.gdb
gdb
->file /path/to/emacs-buffer.gdb
gdb
->source /path/to/emacs-buffer.gdb
source /path/to/emacs-buffer.gdb
Na marginesie, -ggdb3
zał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-tree
pró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-tree
systemie 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-tree
problemów, ale ma szerszy potencjał .
undo-tree
odpowiedzi 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 gdb
tag 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 .