ubuntu ディストリビューションから取り出した Emacs Lisp パッケージに問題があります。パッケージは JDEE で、ファイルを開くたびにArgs out of range: "63", 0, 4
ミニ バッファーとバッファーでエラーが発生します。*Messages*
このバグは昨年 9 月に報告されたようですが、対策は講じられていません。私は自分で Elisp コードを書いたことがあるので、emacs の初心者ではありませんが、このようなものをデバッグしようとしたことはありません。このエラーが発生したときに、デバッガーでファイルの読み込みを停止して、少なくとも問題の原因を突き止めたいと考えています。「エラー時にデバッガーに入る」に関する Elisp マニュアルのセクション 18.1.1 を読みましたがdebug-on-error
、 、debug-ignored-errors
、およびの値のさまざまな組み合わせで遊んだ後にファイルをロードしようとしました。debug-on-signal
効果がないようです。私の次のステップについて何か提案はありますか?
1156 次
3 に答える
7
debug-on-error が機能しない場合は、ソース自体から始めます。問題の原因となっているキーバインド/イベントを見つけて、機能を見つけます。
C-h k <keystrokes>
M-x find-function <function-name-from-above>
さて、ソースにたどり着いたら
M-x edebug-defun
次にキーを押したときに、プログラムをステップ実行できるはずです。その時点で、どの部分がエラーを引き起こしているかを確認でき、そのようにドリルダウンできます。
変数'stack-trace-on-error
を設定して、犯人を見つけることができるかどうかを確認することもできます (ただし、'debug-on-error
通常は私には機能しますが、なぜ機能しないのかはわかりません)。
最後の手段として (うまくedebug-defun
いかない場合)、 を呼び出してルーチンを再定義することができます(debug)
。
于 2009-04-30T05:48:42.543 に答える
-1
自分のスクリプトのいずれかでfind-grep
誤って再定義した後に使用すると、同じエラーが発生しました。(current-time-string)
上記のM-x edebug-defun
ヒントを使用して、コードをステップ実行したときに、への呼び出しを見てエラーが発生したときに問題を見つけることができました(current-time-string)
。
これがあなたの場合にどれほど役立つかわかりません。
于 2011-01-05T10:43:29.840 に答える