PHP's internal debugger is useful for tracking down evasive bugs. The debugger works by connecting to a TCP port for every time PHP starts up. All error messages from that request will be sent to this TCP connection. This information is intended for "debugging server" that can run inside an IDE or programmable editor (such as Emacs).
How to set up the debugger:
Set up a TCP port for the debugger in the configuration file (debugger.port) and enable it (debugger.enabled).
Set up a TCP listener on that port somewhere (for example socket -l -s 1400 on UNIX).
In your code, run "debugger_on(host)", where host is the IP number or name of the host running the TCP listener.
Now, all warnings, notices etc. will show up on that listener socket, even if you them turned off with error_reporting()
Note: The code for the debugger has not been ported to PHP 4, at the present time only PHP 3 supports the debugger code.