PHP 3 디버거 프로토콜은 줄-단위다. 각 줄은 각각 type을 갖고, 몇개의 줄이 message를 구성한다. 각 메시지는 start 타입의 줄로 시작되고 end 타입의 줄로 종료된다. PHP 3는 동시에 서로 다른 메시지 줄을 보낼수 있다.
각 줄은 다음과 같은 포맷을 갖을수 있다:
ISO 8601 포맷의 날짜 (yyyy-mm-dd)
마이크로초를 포함하는 시간: hh:mm:uuuuuu
스크립트 에러가 발생하는 호스트의 DNS 이름이나 IP 주소
이 에러를 발생하는 PHP 3 스크립트의 프로세스의 host상의 PID (프로세스 ID)
줄 타입. 수신 프로그램에게 다음 데이터를 취급해야 한다는것을 알려줌:
표 E-1. 디버거 줄 타입
Name | Meaning |
---|---|
start | 수신 프로그램에게 디버거 메시지가 여기서 시작됨을 알림. data의 내용이 아래 목록처럼 에러 메시지의 타입이 될것이다. |
message | PHP 3 에러 메시지. |
location | 에러가 발생한 파일명과 줄번호. 첫번째 location 줄은 항상 상단의 위치를 내포할것이다. data는 file:line을 포함한다. message와 모든 function 이후에 항상 location 줄이 될것이다. |
frames | 다음 스택 덤프 안의 프레임 번호. 4개의 프레임이 존재한다면, 호출되는 함수의 네단계의 정보를 기대할수 있다. "frames"줄이 보이지 않으면, 스택의 깊이는 0이라고 볼수 있다 (상단에서 에러가 발생함). |
function | 에러가 발생하는 함수명. 함수 호출 스택안의 모든 레벨에서 한번씩 반복될것이다. |
end | 수신 프로그램에게 디버거 메시지가 여기서 끝난다고 알림. |
Line data.
표 E-2. 디버거 에러 타입
Debugger | PHP 3 Internal |
---|---|
warning | E_WARNING |
error | E_ERROR |
parse | E_PARSE |
notice | E_NOTICE |
core-error | E_CORE_ERROR |
core-warning | E_CORE_WARNING |
unknown | (any other) |