PHP 的调试
PHP Manual

调试器协议

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

行的类型。它告诉接收信息的程序如何处理下面的数据:

调试器行类型
名称 含义
start 告诉接收的程序,调试信息由此开始。data 的内容将会是错误消息的类型,在本页面下方列出。
message PHP 3 错误消息。
location 发生错误的文件名和行号。location 的第一行总是包含顶级(top-level)地址。data 包含 file:line。在 message 和每一个 function 之后总有一行 location 行。
frames 在下面的堆栈卸出中所包含的帧数。如果有四帧,则应该有四层函数调用的信息。如果没有给出“frames”这一行,则深度被假定为 0(错误发生在最顶层)。
function 发生错误的函数。在调用函数堆栈的每级只重复一次。
end 告诉接收的程序,除错信息到此结束。

data
每行的数据。
调试器错误类型
调试器 PHP 3 内部
warning E_WARNING
error E_ERROR
parse E_PARSE
notice E_NOTICE
core-error E_CORE_ERROR
core-warning E_CORE_WARNING
unknown (其它任何错误)

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
       


PHP 的调试
PHP Manual