Протокол отладчика

Протокол отладчика PHP 3 является построчным. Каждая строка состоит из типа и нескольких строк, составляющих сообщение. Каждое сообщение начинается строкой, имеющей тип start и завершается строкой, имеющей тип end. PHP 3 имеет возможность одновременной посылки строк, предназначенных для разных сообщений.

Каждая строка имеет следующий формат:


дата время
хост(pid)
тип:
данные сообщения
     

дата

Дата в формате ISO 8601 (гггг-мм-чч)

время

Время с указанием микросекунд: чч:мм:мсмсмс

хост

Имя DNS или IP адрес хоста, на котором возникла ошибка при выполнении скрипта.

pid

PID (идентификатор процесса) на хосте, в процессе работы которого возникла ошибка в скрипте PHP 3.

тип

Тип строки. Сообщает принимающей программе, как та должна интерпретировать последующие данные:

Таблица E-1. Типы строк отладчика

ИмяЗначение
start Сообщает принимающей программе о начале отладочного сообщения. Содержащиеся в данных сведения являютя одним из типов ошибки, перечисленных ниже.
messageСообщение PHP 3 об ошибке.
location Имя файла и номер строки, где возникла ошибка. Первая строка location всегда содержит указание на верхний уровень. данные будут содержать строку вида файл:строка. После каждой строки message и после каждой строки function всегда будет следовать строка location.
framesКоличество кадров в последующем дампе стека. Если, например, передаются сведения о четырех кадрах, следует ожидать, что последует информация о четырех уровнях вложенности вызова функций. Если строка "frames" отсутствует, глубина вложенности принимается за нулевую.
function Имя функции, в которой произошла ошибка. Для каждого уровня вложенности в стеке вызовов функций это имя будет повторяться только однажды.
end Сообщает об окончании отладочного сообщения.

data

Данные в строке.

Таблица E-2. Типы ошибок отладчика

ОтладчикВнутреннее представление в PHP 3
warningE_WARNING
errorE_ERROR
parseE_PARSE
noticeE_NOTICE
core-errorE_CORE_ERROR
core-warningE_CORE_WARNING
unknown(any other)

Пример 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