PHP Manual
后退 | 附录 E. PHP 的调试 | 前进

# 调试器协议

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（进程 id）。

type

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

  表格 E-1. 调试器行类型

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

data

  每行的数据。

表格 E-2. 调试器错误类型

调试器 | 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 | （其它任何错误）

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

后退 | 起点 | 前进
使用调试器 | 上一级 | 扩展 PHP 3