次: , 前: Syntax Errors, 上: Debugging


17.4 コンパイル時の問題のデバッグ

バイトコンパイル時にエラーが発生したときは、 通常、読者がコンパイルしているプログラムの不正な構文に原因があります。 コンパイラはバッファ`*Compile-Log*'に適切なエラーメッセージを 表示してから停止します。 メッセージにはエラーとなった関数の名前があったりなかったりします。 いずれにしても、つぎのようにしてファイルのどこでエラーが生じたかを調べます。

まず、バッファ` *Compiler Input*'に切り替えます。 (バッファ名が空白で始まり、そのため、 M-x list-buffersでは表示されないことに注意。) このバッファにはコンパイルしたプログラムが入っていて、 ポイント位置はバイトコンパイラがどこまで読み取ったかを表します。

エラーの原因が不正なLisp構文であるならば、 ポイント位置が不正構文を検出した箇所を正確に表します。 エラー原因が近くにあるとは限りません! エラーを探すために前節の方法を使ってください。

正しく読み取ったフォームのコンパイル中にエラーを検出したときには、 ポイントはそのフォームの末尾に位置しています。 この場合、この方法ではエラー箇所を正確に判別できませんが、 どの関数を確認すべきかを示しています。