そのまんま!

デバッガのプロトコル

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

タイプ

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

表 F-1. デバッガの行タイプ

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

データ

行データ

表 F-2. デバッガのエラータイプ

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

例 F-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