Protocole du débuggeur

Le protocole de débugage PHP 3 fonctionne ligne par ligne. Chaque ligne a un type type et plusieurs lignes composent un message Chaque message commence avec une ligne du type start et se termine avec une ligne de type end. PHP peut envoyer des lignes de plusieurs messages simultanément.

Voici un exemple de ligne à ce format :


date time
host(pid)
type:
message-data
  

date

Les dates sont au format ISO 8601 (yyyy-mm-dd)

time

Les heures, y compris les micro-secondes: hh:mm:uuuuuu

host

Le nom DNS ou adresse IP de l'hôte qui a généré l'erreur.

pid

PID (process id) sur l'hôte host, qui a généré l'erreur.

type

Type de la ligne. Indique au programme client comment traiter les données suivantes :

Tableau D-1. Types des lignes du Débuggeur

NomSignification
start Indique au programme client que le message du débuggeur commence ici. Le contenu de data sera un type d'erreur, comme listé ci-dessous.
messageLe message d'erreur PHP 3.
location Nom du fichier et numéro de ligne, où l'erreur est survenue. La première occurrence de location contiendra toujours la localisation générale. data contiendra : file:line. Il y a toujours une indication de location après un message et après chaque function.
frames Nombre de frames dans le dump de la pile. S'il y a 4 frames, attendez vous à des informations sur 4 niveaux de fonctions. Si la ligne "frame" n'existe pas, la profondeur doit être 0 (une erreur est survenue au niveau général).
function Nom de la fonction qui a généré l'erreur. Elle sera répétée à chaque niveau de la pile d'appel.
end Indique au client que le message du débuggeur se termine ici.

data

Ligne de données.

Tableau D-2. Types d'erreur du débuggeur

DébuggeurInterne PHP 3
alerte (warning)E_WARNING
erreurE_ERROR
analyse (parse)E_PARSE
note (notice)E_NOTICE
core-errorE_CORE_ERROR
core-warningE_CORE_WARNING
inconnue(toutes les autres)

Exemple D-1. Exemple de message du débuggeur


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