[ 先頭 | 上へ | 前へ | 次へ | 目次 | 索引 ]

Analog 5.91beta1: デバッグ


この章では、Analog がうまく動作していないと感じた時に、Analog をデバッグするためのコマンドについて説明します。後の章では、Analog が生成するすべての エラーおよび警告 およびその意味の一覧を説明しています。また別の章では、バグを報告する方法について説明しています。

まずは、すでに説明してきた Analog の現在の設定項目をすべて表示させるオプションを思い出してください。これを行なうには、コマンドラインで -settings と入力するか、設定ファイルで、他のコマンドと同様にして SETTINGS ON と記述します。これにより、Analog は通常の処理を行なう代わりに、現在の設定の一覧を出力します。


Analog には実行時に、デバッグ情報や警告情報をどの程度出力するかを制御するコマンドが用意されています。デフォルトではすべての警告が出力され、デバッグ情報は一切出力されませんが、DEBUG および WARNINGS コマンドにより、これらの設定を変更することができます。
DEBUG ON
と記述することで、すべてのデバッグ出力が有効になります (なお DEBUG OFF でこの出力を抑止できます)。またデバッグ出力の特定のカテゴリだけを出力させることもできます。カテゴリには以下のようなものがあります。
C
ログファイル中の異常行の一覧
D
DNS 検索に関する情報
F
ファイルのオープンとクローズに関する情報
S
各ログファイルのクローズ時に出力する概要情報
U
不明なドメイン名の一覧
V
ドメイン名がないホスト名の一覧 (ドットがついていないホスト名)
例えば、以下のコマンドにより
DEBUG FS
ファイルのオープンとクローズに関する情報と各ログファイルの概要について出力が行なわれますが、その他のデバッグ情報は出力されません。各々のデバッグ情報のカテゴリはコード文字で表されます。なお以下のように記述することで
DEBUG +CD
CD のカテゴリを現在のデバッグの設定に追加することや、
DEBUG -CD
と記述することで、上記の2つのカテゴリを現在の設定から削除するといったことも可能です。

これらのコマンドには、コマンドラインオプションも用意されています。 +V (ON)、-V (OFF) に加え、 +VFS (FSのカテゴリのみを有効にします)、+V+FS (これらのカテゴリを追加します)、 +V-FS (これらのオプションを無効にします)といった指定も可能です。

C による情報は、2行にわたって出力されます。最初の行は異常になっているログファイルの行全体を示します。2行目は行の中のどこで Analog が問題に気づいたかを示します(訳注: 1行目の問題箇所の下に「*」がつきます)。 (この行は、必ずではないものの、大半の場合問題がある場所を示しています) 実際、出力中の各「行」は画面上では数行にわたっている場合もあるため、ログファイルの行のどこが異常になっているかを確認するには、注意深くみていく必要があり大変です。


WARNINGS コマンドも DEBUGコマンドと同様に機能します (構文については 上記を参照してください)。デフォルトではすべての警告の出力が有効になっています。WARNINGS ONWARNINGS OFF 以外に、以下のカテゴリ単位で出力を制御することができます。
C
不正な設定
D
疑わしい設定
E
ERRFILE コマンドの使用 (以下を参照のこと)
F
存在しないか不正なファイル
L
ログファイル中の明白な問題
M
ログファイル中の疑わしい問題
R
結果が空のレポートの出力の抑止
これらのカテゴリについての詳細については、 エラーと警告 の章を参照してください。警告についても、行の先頭にコード文字が入った形で出力されます。

警告の範囲はおそらく無害なものからかなり重大なものまで多岐にわたります。そのため、すべての警告出力を無効にするのは、重要な情報が出力されないことにもなりますので、あまりよい案とはいえないでしょう。特定の警告だけを無効にしたい場合は、そのカテゴリの警告だけを抑止してください。

WARNINGS コマンドにも、 +q-q、kbd>+q<options>、+q+<options>+q-<options>というコマンドラインオプションが用意されています。 (文法については、+V command 前述した +Vコマンドと同じです)


初期設定ではこれらのメッセージは標準エラー出力に出力されます。これは通常画面になります。ただし以下のコマンドにより出力先を変更することも可能です。
ERRFILE newfile
このコマンドを記述すると、Analog は、出力先の変更情報を見失わないようにメッセージがリダイレクトされているという警告を出力します。標準エラー出力に戻すには、以下のコマンド
ERRFILE stderr
を使います。 kbd>ERRFILE コマンドで指定されたファイルに元々書き込まれていた内容は消去されます。(そのため、同じ ERRFILE コマンドを何度も記述しないでください。さもないと、せっかくのメッセージが失われてしまいます。) ERRFILE コマンドで指定されたログファイル名にディレクトリ名が含まれていない場合、 Analog は、プログラムのコンパイル時に指定された特定の場所にファイルを書き込もうとします。例えば、 Windows 版の場合、これは Analog の実行ファイルと同じフォルダになります。
ERRLINELENGTHというコマンドにより、 Analog に対してメッセージを出力する際の画面の幅を指示することができます。 なお、特殊なケースとして
ERRLINELENGTH 0
とした場合、画面の幅は無制限になります。
Analog をデバッグするのに便利なコマンドをもう一つだけ紹介しておきましょう。以下のコマンド
PROGRESSFREQ 20000  # say
により、Analog はログファイルから 20000行読むたびに簡単にメッセージを生成します。(このメッセージは画面とERRFILEコマンドで指定された場所とに出力されます) これを元に、プログラムが本当に停止してしまったのか、あるいは何らかの理由(DNS検索など)で動きが遅くなっているのかを判断することができます。
Analog の設定コマンドとコマンドライン引数について述べた章もあと一つだけです。最後の章はちょっと長めで、フォームインタフェースについて説明しています。 (これは、Web ページからオプションを指定して、Analog を実行させるものです。) そのため、結果の読み方の章にとんでもよいでしょう。
Analog ホームページ

Stephen Turner
23 August 2003

Analog についての質問はanalog-help メーリングリスト をお使いください。 (訳注: 日本では analog-jp メーリングリスト をご利用ください)

[ 先頭 | 上へ | 前へ | 次へ | 目次 | 索引 ]