The debugger protocol is line-based. Each line has a type, and several lines compose a message. Each message starts with a line of the type start and terminates with a line of the type end. PHP may send lines for different messages simultaneously.
A line has this format:
Date in ISO 8601 format (yyyy-mm-dd)
Time including microseconds: hh:mm:uuuuuu
DNS name or IP address of the host where the script error was generated.
PID (process id) on host of the process with the PHP script that generated this error.
Type of line. Tells the receiving program about what it should treat the following data as:
Table D-1. Debugger Line Types
|start||Tells the receiving program that a debugger message starts here. The contents of data will be the type of error message, listed below.|
|message||The PHP error message.|
|location||File name and line number where the error occured. The first location line will always contain the top-level location. data will contain file:line. There will always be a location line after message and after every function.|
|frames||Number of frames in the following stack dump. If there are four frames, expect information about four levels of called functions. If no "frames" line is given, the depth should be assumed to be 0 (the error occured at top-level).|
|function||Name of function where the error occured. Will be repeated once for every level in the function call stack.|
|end||Tells the receiving program that a debugger message ends here.|
Table D-2. Debugger Error Types
Example D-1. Example Debugger Message