Je débogue pourquoi emacs se bloque lors de l'utilisation d'une fonction à partir d'un package 1 . Le but de ce processus de débogage est d'obtenir des données utiles à soumettre en utilisant M-x report-emacs-bug
.
Pour obtenir de l'aide sur la façon de déboguer les plantages d'emacs, j'ai déjà regardé Emacs Manual - Crashing et Emacs Manual - After a Crash , mais ils n'ont pas aidé.
Le manuel After A Crash fait référence emacs-buffer.gdb
mais je ne sais pas comment l'utiliser. En demandant de l'aide à Google, je suis tombé sur cette question emacs.SE et j'ai recompilé emacs en utilisant les -ggdb3
drapeaux.
Je n'ai aucune expérience préalable de l'utilisation gdb
et j'ai donc tenté quelques tentatives infructueuses d'utilisation du emacs-buffer.gbd
fichier.
Voici ce que j'ai essayé:
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
Sur une note latérale, emacs compilé avec le -ggdb3
drapeau prend environ 10 secondes de plus à charger; plus tôt, c'était 5-6 secondes, maintenant environ 16-17 secondes. Je connais les secondes exactes à cause d'un code qui calcule cela dans mon init. Cette augmentation du temps de démarrage est-elle attendue?
Note de bas de page 1: emacs se bloque systématiquement lors d'une undo-tree
tentative de restauration de l'historique d'annulation d'un fichier .org particulier (que je ne peux pas partager publiquement). Je l'ai (setq undo-tree-auto-save-history t)
. Ce plantage ne se produit que sur emacs git master, pas sur emacs 24.5. Sur emacs 24.5, undo-tree
génère une erreur indiquant qu'il est impossible de charger l'historique d'annulation (même si le fichier historique d'annulation existe), mais au moins la session emacs ne se bloque pas sur cette version.
undue-tree
problèmes, mais elle a un potentiel plus large .
undo-tree
réponse spécifique car je sais qu'il serait difficile pour quelqu'un d'autre de recréer ce crash exact. Je ne peux pas non plus partager l'intégralité du fichier org, qui est le seul qui semble provoquer ce plantage. J'ai donc appliqué uniquement la gdb
balise à cette question. J'ai donné cette histoire en arrière afin que les réponses puissent me guider sur la façon de déboguer un crash emacs en général afin que je puisse déposer un rapport de bogue emacs utile .