19 Lispプログラムのデバッグ
Emacs Lispプログラム内の問題を見つけて詳細に調べる方法がいくつかあります。
- プログラム実行中に問題が発生した場合には、Lisp評価機能をサスペンドするためにビルトインのEmacs
Lispデバッガ(Lispデバッガを参照)を使用して評価機能の内部状態の調査および/または変更を行なうことができる。
- Emacs LispにたいするソースレベルデバッガのEdebugを使用できる。Edebugを参照のこと。
-
trace.elパッケージが提供するトレース機能を使用して問題に関する関数の実行をトレースできます。このパッケージは関数呼び出しのトレース用に
trace-function-foreground
とtrace-function-background
、値をトレースする変数の追加用にtrace-values
という関数を提供する。詳細はtrace.elにあるこれらの機能のドキュメントを参照のと。
- 文法的な問題によりLispがプログラムを読むことさえできない場合には、Lisp編集コマンドを使用して該当箇所を見つけることができる。
- バイトコンパイラーがプログラムをコンパイルするとき、コンパイラーにより生成されるエラーメッセージと警告メッセージを調べることができる。コンパイラーのエラーを参照のこと。
- Testcoverパッケージを使用してプログラムのテストカバレッジを行なうことができる。
- ERTパッケージを使用してプログラムにたいするリグレッションテストを記述できる。the ERT manual in ERT:
Emacs Lisp Regression Testingを参照のこと。
- プログラムをプロファイルしてプログラムをより効果的にするためのヒントを取得できる。プロファイリングを参照のこと。
入出力の問題をデバックする便利なその他のツールとして、ドリブルファイル(dribble file: 端末の入力を参照)と、open-termscript
関数(端末の出力)があります。