Forum und email

デバッガのプロトコル

PHP 3 のデバッガのプロトコルは行ベースです。各行には タイプ を持ち、また メッセージ を構成する行もあります。 各メッセージはタイプ start を持つ行で始まり、タイプ end を持つ行で終わります。 PHP 3 は異なったメッセージを持つ行を同時に送ることがあります。

A line has this format:

date time host(pid) type: message-data

日付
ISO 8601 フォーマットの日付 (yyyy-mm-dd)
時刻
マイクロ秒単位の時刻: hh:mm:uuuuuu
ホスト名
スクリプト・エラーを生成したホストのDNS名 またはIPアドレス。
プロセス ID
ホストにおいて このエラーを生成した PHP 3 スクリプトのプロセス ID
タイプ

行のタイプ。以降に続くデータをどう解釈すべきかを、 受信プログラムに知らせます。

デバッガの行タイプ
名前 意味
start デバッガ・メッセージが、 ここから始まることを受信プログラムに伝える役割をします。 データ の内容は、 以下に示すエラーメッセージのタイプです。
message PHP 3 エラーメッセージ
location エラーが発生したファイル名と行番号。最初の location 行は常に最上位レベルの位置が入っています。 データファイル名: 行番号 のようになります。 message の後、および、すべての function の後の行には常に location が付きます。
frames 後に続くスタックダンプの中のフレーム数。もし4フレームあれば、 4レベルに渡ってコールされた関数の情報があることになります。 "frames" 行がない場合は、ネストの深さは0 (エラーはトップレベルで起こった)と仮定されます。
function エラーが発生した関数名。関数コール・スタックにおいて、 各レベル毎に繰り返されます。
end 受信プログラムに対して、 デバッガのメッセージがここで終わることを知らせます。

データ
行データ
デバッガのエラータイプ
デバッガ PHP 3 内部
警告 E_WARNING
エラー E_ERROR
パース E_PARSE
通知 E_NOTICE
コア・エラー E_CORE_ERROR
コア警告 E_CORE_WARNING
未定義 (その他)

Example#1 デバッガメッセージの例

1998-04-05 23:27:400966 lucifer.guardian.no(20481) start: notice
1998-04-05 23:27:400966 lucifer.guardian.no(20481) message: Uninitialized variable
1998-04-05 23:27:400966 lucifer.guardian.no(20481) location: (NULL):7
1998-04-05 23:27:400966 lucifer.guardian.no(20481) frames: 1
1998-04-05 23:27:400966 lucifer.guardian.no(20481) function: display
1998-04-05 23:27:400966 lucifer.guardian.no(20481) location: /home/ssb/public_html/test.php3:10
1998-04-05 23:27:400966 lucifer.guardian.no(20481) end: notice