GNU Emacs 23.1.50.1(x86_64-pc-linux-gnu、GTK +バージョン2.18.0)を使用していて、GNU画面内でEmacsセッションを開始します。
Ubuntu10.04とemacs-snapshot
のバージョンにアップグレードしたので、いくつかの問題が発生します。 EmacsがすべてのRAMに加えて同じ量のスワップスペース(2 + 2GB)を占有し、すべてのCPU時間を消費することもあります。プロセスにSIGTERMを送信すると、プロセスはCPU時間を消費しなくなりますが、膨大な時間です。割り当てられた量のメモリが残ります。Emacs自体はキーシーケンスを取りません。そのため、通常、プロセスにSIGKILLを送信すると、プロセスが停止します。
ここで、バグ(存在する場合)がどこにあるかを調べて、デバッグを行いたいと思います。この動作の特別な理由はわかりません。 Emacsを新しく起動した後に開始することもあれば、問題なく1日中作業できることもあれば、その間に発生することもあります。そのため、プロセスのデバッグまたは監視のようなものを探しています。
strace
を試しましたが、出力が多すぎます。編集セッションのStrace出力は、ハードドライブ全体を簡単にいっぱいにする可能性があります。 gdb内でEmacsを実行することも機能しません。なぜなら、私が正しく覚えていれば、Ubuntuはシンボルをデバッグせずにソフトウェアをビルドするからです。では、(可能性のある)バグを見つける方法について何かアドバイスはありますか?あなたは何を提案しますか?
私はこれに対する答えを偶然見つけました。問題はemacsではなく、誤動作しているGNOMEキーリングでした。キーリングデーモンなしでEmacsを起動すると、すべて問題ありません。そのため、無効にすると、ここで問題が解決しました。
おそらくパッケージemacs-snapshot-dbgが興味深いかもしれませんか?
「このパッケージには、Emacsのデバッグに役立つデバッグシンボルが含まれています。」
現時点では、Messages-bufferのすべてのコンテンツをファイルに保存しようとしていますが、何か便利なものを見つけたいと思っています。
(with-current-buffer "*Messages*" (auto-save-mode t))