Sto eseguendo il debug del motivo per cui emacs si arresta in modo anomalo quando si utilizza una funzione da un pacchetto 1 . Lo scopo di questo processo di debug è ottenere dati utili da inviare utilizzando M-x report-emacs-bug
.
Per ottenere assistenza su come eseguire il debug degli arresti anomali di emacs, ho già esaminato il manuale Emacs - Crashing and Emacs Manual - After a Crash , ma non mi hanno aiutato.
Il manuale di After A Crash fa riferimento emacs-buffer.gdb
ma non ho idea di come usarlo. Mentre chiedevo aiuto a google, mi sono imbattuto in questa domanda emacs.SE e ho ricompilato emacs usando le -ggdb3
bandiere.
Non ho alcuna esperienza precedente nell'uso gdb
e quindi ho provato alcuni tentativi falliti di utilizzare il emacs-buffer.gbd
file.
Ecco cosa ho provato:
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
Su una nota a margine, gli emacs compilati con il -ggdb3
flag impiegano circa 10 secondi in più per caricarsi; prima erano 5-6 secondi, ora circa 16-17 secondi. Conosco i secondi esatti a causa di un codice che calcola quello nel mio init. Si prevede un aumento del tempo di avvio?
Nota 1: emacs si arresta in modo anomalo in modo coerente quando undo-tree
tenta di ripristinare la cronologia degli annullamenti per un determinato file .org (che non posso condividere pubblicamente). Io ho (setq undo-tree-auto-save-history t)
. Questo crash si verifica solo su emacs git master, non su emacs 24.5. Su emacs 24.5, undo-tree
genera un errore che indica che non è in grado di caricare la cronologia degli annullamenti (anche se esiste il file della cronologia degli annullamenti), ma almeno la sessione di emacs non si arresta in modo anomalo su quella versione.
undue-tree
problemi, ma ha un potenziale più ampio .
undo-tree
risposta specifica perché so che sarebbe difficile per chiunque ricreare quell'incidente esatto. Inoltre non posso condividere l'intero file dell'organizzazione che è l'unico che sembra causare questo arresto. Quindi ho applicato solo il gdb
tag a questa domanda. Ho dato quella storia in modo che le risposte possano guidarmi su come eseguire il debug di un arresto anomalo di emacs in generale in modo da poter presentare una utile segnalazione di bug di emacs .