次: , 前: Trace, 上: Debugging


6.3 デバッグ出力の制御

m4に`-d'オプションを与えることにより、 これまでの節に記載されているマクロを使ったときに表示される情報の詳しさを 制御します。

このオプションに続けて次のうち1つまたは複数のフラグを指定します。

t
今回起動するm4におけるマクロの呼び出しを全てトレースします。
a
マクロの呼び出しに伴う実引数を表示します。 `t'フラグと共に指定したときは全てのマクロの呼び出しが対象となりますが、 それ以外の場合はtraceonマクロによってトレースしているマクロだけが 対象となります。
e
マクロの呼び出しが展開後に消滅しない場合、展開後のテキストを表示します。 `t'フラグと共に指定したときは全てのマクロの呼び出しが対象となりますが、 それ以外の場合はtraceonマクロによってトレースしているマクロだけが 対象となります。
q
実引数やマクロの展開後のテキストを表示するときに現在の引用符でクォートします。
c
ひとつのマクロの呼び出しにつき複数のトレース行を表示します。 マクロが認識された時点で引数を集める前に1行表示し、 引数を集め終った後に2行目を、 マクロの呼び出しが完了したあとに3行目を表示します。
x
トレースの各出力行にマクロの呼び出し毎に異なる`識別番号(id)'を加えます。 これは上記の`c'フラグを使うときに便利です。
f
トレースの各出力行に、現在の入力ファイルの名前を表示します。
l
トレースの各出力行に、現在の入力行番号を表示します。
p
指定した名前のファイルをパスサーチ機構(see Search Path)を使って 見つけたときは、実際に使われるファイル名を表示します。
i
現在の入力ファイルが替わるたびに、ファイル名と入力行番号を表示します。
V
上記すべてのフラグを表す簡略表記です。

`-d'オプションに何もフラグを指定しない場合、 デフォルトで`aeq'が使われます。 前2つの節にある例は、これらデフォルトのフラグを使うことを想定しています。

組み込みマクロdebugmodeを使うと、実行時にデバッグ出力のフォーマットを 制御できます。

     debugmode(opt flags)

引数flagsは上に列挙されている文字をいくつか指定します。 特殊なケースとして引数を`+'で始めると、 それらのフラグが現在のデバッグフラグ群に追加されます。 また引数を`-'で始めると現在のデバッグフラグ群から削除されます。 引数をまったく与えない場合、デバッグフラグは(`-d'を与えない場合と同様に) すべてゼロに設定されます。 引数として空文字列を与えるとフラグはデフォルトの値にリセットされます。