PHP 3 디버거 프로토콜은 줄-단위다. 각 줄은 각각 type을 갖고, 몇개의 줄이 message를 구성한다. 각 메시지는 start 타입의 줄로 시작되고 end 타입의 줄로 종료된다. PHP 3는 동시에 서로 다른 메시지 줄을 보낼수 있다.
각 줄은 다음과 같은 포맷을 갖을수 있다:
date time host(pid) type: message-data
줄 타입. 수신 프로그램에게 다음 데이터를 취급해야 한다는것을 알려줌:
Name | Meaning |
---|---|
start | 수신 프로그램에게 디버거 메시지가 여기서 시작됨을 알림. data의 내용이 아래 목록처럼 에러 메시지의 타입이 될것이다. |
message | PHP 3 에러 메시지. |
location | 에러가 발생한 파일명과 줄번호. 첫번째 location 줄은 항상 상단의 위치를 내포할것이다. data는 file:line을 포함한다. message와 모든 function 이후에 항상 location 줄이 될것이다. |
frames | 다음 스택 덤프 안의 프레임 번호. 4개의 프레임이 존재한다면, 호출되는 함수의 네단계의 정보를 기대할수 있다. "frames"줄이 보이지 않으면, 스택의 깊이는 0이라고 볼수 있다 (상단에서 에러가 발생함). |
function | 에러가 발생하는 함수명. 함수 호출 스택안의 모든 레벨에서 한번씩 반복될것이다. |
end | 수신 프로그램에게 디버거 메시지가 여기서 끝난다고 알림. |
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) |
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