次へ: Lispオブジェクトの読み込みと出力, 前へ: Lispからネイティブコードへのコンパイル, 上へ: Emacs
Lisp [目次][索引]
19 Lispプログラムのデバッグ ¶
Emacs Lispプログラムの問題を発見し、調査する方法はいくつかあります。
- プログラムの実行中に問題が発生した場合は、組み込みのEmacs Lispデバッガ(Lispデバッガを参照)を使用してLisp評価器を一時停止し、その内部状態を調査したり変更したりすることができます。
- Emacs Lisp用のソースレベルデバッガであるEdebugを利用できます。Edebugを参照してください。
- trace.el
パッケージが提供するトレーシング機能を使用して、問題に関わる関数の実行をトレースできます。このパッケージには、関数呼び出しをトレースするための
trace-function-foreground および trace-function-background 関数と、選択変数の値をトレースに追加するための trace-values 関数が用意されています。詳細については、trace.el にあるこれらの機能のドキュメントを参照してください。
- 構文上の問題でLispがプログラムを読み込むことさえできない場合は、Lispの編集コマンドを使ってその箇所を特定できます。
- プログラムをコンパイルする際にバイトコンパイラが出力するエラーおよび警告メッセージを確認できます。コンパイラエラーを参照してください。
- Testcoverパッケージを使用して、プログラムのカバレッジテストを実行できます。
- ERTパッケージを使用して、プログラムの回帰テストを記述できます。ERT: Emacs Lisp
Regression TestingのERTマニュアルを参照してください。
- プログラムをプロファイリングすることで、効率化のためのヒントを得ることができます。プロファイリングを参照してください。
入出力の問題をデバッグする際に役立つその他のツールとしては、dribbleファイル(ターミナル入力を参照)やopen-termscript関数(ターミナル出力を参照)があります。