Estoy depurando por qué emacs se bloquea al usar una función de un paquete 1 . El objetivo de este proceso de depuración es obtener datos útiles para enviar utilizando M-x report-emacs-bug.
Para obtener ayuda sobre cómo depurar bloqueos de emacs, ya he consultado el Manual de Emacs - Bloqueo y el Manual de Emacs - Después de un bloqueo , pero no me ayudaron.
El manual After A Crash hace referencia, emacs-buffer.gdbpero no tengo idea de cómo usarlo. Mientras le pedía ayuda a google, me encontré con esta pregunta de emacs.SE , y volví a compilar emacs usando las -ggdb3banderas.
No tengo experiencia previa en el uso, gdbpor lo que intenté algunos intentos fallidos de usar el emacs-buffer.gbdarchivo.
Esto es lo que probé:
gdb -x /path/to/emacs-buffer.gdbgdb->file /path/to/emacs-buffer.gdbgdb->source /path/to/emacs-buffer.gdbsource /path/to/emacs-buffer.gdb
En una nota al margen, emacs compilado con la -ggdb3bandera tarda unos 10 segundos más en cargarse; antes eran 5-6 segundos, ahora unos 16-17 segundos. Sé los segundos exactos debido a un código que calcula eso en mi init. ¿Se espera este aumento en el tiempo de inicio?
Nota 1: emacs se bloquea constantemente cuando undo-treeintenta restaurar el historial de deshacer para un archivo .org en particular (que no puedo compartir públicamente). Tengo (setq undo-tree-auto-save-history t). Este bloqueo ocurre solo en emacs git master, no en emacs 24.5. En emacs 24.5, undo-treearroja un error que indica que no puede cargar el historial de deshacer (incluso a través del archivo de historial de deshacer existe), pero al menos la sesión de emacs no se bloquea en esa versión.
undue-treeproblemas, pero tiene un potencial más amplio .
undo-treerespuesta específica porque sé que sería difícil para cualquier otra persona recrear ese bloqueo exacto. Además, no puedo compartir todo el archivo de organización, que es el único que parece causar este bloqueo. Entonces apliqué solo la gdbetiqueta a esta pregunta. Di esa historia de fondo para que las respuestas me guíen cómo depurar un bloqueo de emacs en general para que pueda presentar un informe de error útil de emacs .