パッケージ1の関数を使用するとemacsがクラッシュする理由をデバッグしています。このデバッグプロセスの目的は、を使用して送信する有用なデータを取得することですM-x report-emacs-bug
。
emacsのクラッシュをデバッグする方法についてのヘルプを得るために、Emacs Manual-CrashingおよびEmacs Manual-After a Crashを既に見てきましたが、彼らは助けませんでした。
Aクラッシュ後のマニュアルは、を意味しemacs-buffer.gdb
ますが、私はそれを使用する方法が分かりません。Googleに助けを求めている間に、このemacs.SEの質問に出会い、-ggdb3
フラグを使用してemacsを再コンパイルしました。
私は以前に使用gdb
した経験がないため、emacs-buffer.gbd
ファイルを使用しようとして失敗したことはほとんどありませんでした。
ここに私が試したものがあります:
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
ちなみに、-ggdb3
フラグ付きでコンパイルされたemacsのロードには約10秒かかります。以前は5〜6秒でしたが、現在は約16〜17秒です。私の初期化でそれを計算するコードのために、正確な秒を知っています。この起動時間の増加は予想されますか?
脚注1:undo-tree
特定の.orgファイルの取り消し履歴を復元しようとすると、emacsは一貫してクラッシュします(これを公開することはできません)。持ってい(setq undo-tree-auto-save-history t)
ます。このクラッシュはemacs git masterでのみ発生し、emacs 24.5では発生しません。emacs 24.5では、undo-tree
(元に戻す履歴ファイルが存在する場合でも)元に戻す履歴を読み込めないことを示すエラーがスローされますが、少なくともそのバージョンではemacsセッションはクラッシュしません。
undue-tree
問題のために重要であることを理解していますが、より広い可能性を持っています。
undo-tree
他の誰かがその正確なクラッシュを再現することは難しいとわかっているので、特定の回答は期待していませんでした。また、このクラッシュを引き起こすと思われる唯一の組織ファイル全体を共有することはできません。そのgdb
ため、この質問にはタグのみを適用しました。その答えを参考にして、一般的なemacsクラッシュのデバッグ方法を教えて、有用なemacsバグレポートを提出できるようにしました。