除錯器協定

PHP 3 除錯器協定以行為單位。每一行有一個類型(type),某幾行組成一個訊息(message)。每一個訊息起始於包括類型 start 的一行,並終止於包括類型 end 的一行。PHP 3 可以同時傳送不同的訊息行。

行的格式如下:

date time host(pid) type: message-data

date

date 使用 ISO 8601 格式:yyyy-mm-dd

time

time 精確到毫秒:hh:mm:uuuuuu

host

產生錯誤的 PHP 腳本所在主電腦的 DNS 名或 IP 位址。

pid

產生錯誤的 PHP 腳本在 host 中的 PID。

type

行的類型。它告訴接收訊息的程式如何處理下面的資料:

表格 E-1. 除錯器行類型

名稱含義
start 告訴接收的程式,除錯訊息由此開始。data 的內容將會是錯誤訊息的類型,在本頁面下方列出。
messagePHP 3 錯誤訊息。
location 發生錯誤的檔案名和行號。location 的第一行總是包括頂級(top-level)位址。data 包括 file:line。在 message 和每一個 function 之後總有一行 location 行。
frames 在下面的堆疊卸出中所包括的幀數。若果有四幀,則應該有四層函數呼叫的訊息。若果沒有給出「frames」這一行,則深度被假定為 0(錯誤發生在最頂層)。
function 發生錯誤的函數。在呼叫函數堆疊的每級只重複一次。
end 告訴接收的程式,除錯訊息到此結束。

data

每行的資料。

表格 E-2. 除錯器錯誤類型

除錯器PHP 3 內定
warningE_WARNING
errorE_ERROR
parseE_PARSE
noticeE_NOTICE
core-errorE_CORE_ERROR
core-warningE_CORE_WARNING
unknown(其它任何錯誤)

例子 E-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