<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <HTML ><HEAD ><TITLE >Protocolo do Debugger</TITLE ><META NAME="GENERATOR" CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK REL="HOME" TITLE="Manual do PHP" HREF="index.html"><LINK REL="UP" TITLE="O debugador do PHP" HREF="debugger.html"><LINK REL="PREVIOUS" TITLE="Utilizando o debugador" HREF="debugger-using.html"><LINK REL="NEXT" TITLE="Opções do script Configure" HREF="configure.html"><META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=UTF-8"></HEAD ><BODY CLASS="sect1" BGCOLOR="#FFFFFF" TEXT="#000000" LINK="#0000FF" VLINK="#840084" ALINK="#0000FF" ><DIV CLASS="NAVHEADER" ><TABLE SUMMARY="Header navigation table" WIDTH="100%" BORDER="0" CELLPADDING="0" CELLSPACING="0" ><TR ><TH COLSPAN="3" ALIGN="center" >Manual do PHP</TH ></TR ><TR ><TD WIDTH="10%" ALIGN="left" VALIGN="bottom" ><A HREF="debugger-using.html" ACCESSKEY="P" >Anterior</A ></TD ><TD WIDTH="80%" ALIGN="center" VALIGN="bottom" >Apêndice F. O debugador do PHP</TD ><TD WIDTH="10%" ALIGN="right" VALIGN="bottom" ><A HREF="configure.html" ACCESSKEY="N" >Próxima</A ></TD ></TR ></TABLE ><HR ALIGN="LEFT" WIDTH="100%"></DIV ><DIV CLASS="sect1" ><H1 CLASS="sect1" ><A NAME="debugger-protocol" >Protocolo do Debugger</A ></H1 ><P > O protocolo do debugador do PHP 3 é baseado em linhas. Cada linha tem um <SPAN CLASS="emphasis" ><I CLASS="emphasis" >tipo</I ></SPAN >, e várias linhas compõem uma <SPAN CLASS="emphasis" ><I CLASS="emphasis" >mensagem</I ></SPAN >. Cada mensagem começa com uma linha do tipo <TT CLASS="literal" >start</TT > e termina com uma linha do tipo <TT CLASS="literal" >end</TT >. O PHP 3 pode enviar linhas de diferentes mensagens simultaneamente. </P ><P > Uma linha tem este formato: <DIV CLASS="informalexample" ><P ></P ><A NAME="AEN276538" ></A ><TABLE BORDER="0" BGCOLOR="#E0E0E0" CELLPADDING="5" ><TR ><TD ><PRE CLASS="programlisting" >date time host(pid) type: message-data</PRE ></TD ></TR ></TABLE ><P ></P ></DIV > </P ><P > <P ></P ><DIV CLASS="variablelist" ><DL ><DT ><TT CLASS="replaceable" ><I >date</I ></TT ></DT ><DD ><P > Data no formato ISO 8601 (<TT CLASS="replaceable" ><I >yyyy</I ></TT >-<TT CLASS="replaceable" ><I >mm</I ></TT >-<TT CLASS="replaceable" ><I >dd</I ></TT >) </P ></DD ><DT ><TT CLASS="replaceable" ><I >time</I ></TT ></DT ><DD ><P >Hora, incluindo microsegundos: <TT CLASS="replaceable" ><I >hh</I ></TT >:<TT CLASS="replaceable" ><I >mm</I ></TT >:<TT CLASS="replaceable" ><I >uuuuuu</I ></TT > </P ></DD ><DT ><TT CLASS="replaceable" ><I >host</I ></TT ></DT ><DD ><P > Nome DNS ou IP da maquina onde o erro do script foi gerado. </P ></DD ><DT ><TT CLASS="replaceable" ><I >pid</I ></TT ></DT ><DD ><P > ID do processo na <TT CLASS="replaceable" ><I >máquina</I ></TT > do processo com o PHP 3 que gerou este erro de script. </P ></DD ><DT ><TT CLASS="replaceable" ><I >type</I ></TT ></DT ><DD ><P > Tipo da linha. Informa o programa sobre como ele deve tratar os seguintes dados: <DIV CLASS="table" ><A NAME="AEN276574" ></A ><P ><B >Tabela F-1. Tipos de Linhas de Debug</B ></P ><TABLE BORDER="1" CLASS="CALSTABLE" ><COL><COL><THEAD ><TR ><TH >Nome</TH ><TH >Significado</TH ></TR ></THEAD ><TBODY ><TR ><TD ><TT CLASS="literal" >start</TT ></TD ><TD > Informa ao programa que a mensagem começa aqui. O conteúdo de <TT CLASS="replaceable" ><I >data</I ></TT > será o tipo de erro da mensagem, como listado abaixo. </TD ></TR ><TR ><TD ><TT CLASS="literal" >message</TT ></TD ><TD >A mensagem de erro do PHP 3.</TD ></TR ><TR ><TD ><TT CLASS="literal" >location</TT ></TD ><TD > Arquivo e número da linha onde ocorreu o erro. A primeira linha <TT CLASS="literal" >location</TT > sempre conterá o nível superior. <TT CLASS="replaceable" ><I >data</I ></TT > conterá: <TT CLASS="literal" ><TT CLASS="replaceable" ><I >arquivo</I ></TT >:<TT CLASS="replaceable" ><I >linha</I ></TT ></TT >. Sempre existirá uma linha <TT CLASS="literal" >location</TT > após uma <TT CLASS="literal" >message</TT > e após cada <TT CLASS="literal" >function</TT >. </TD ></TR ><TR ><TD > <TT CLASS="literal" >frames</TT ></TD ><TD >Número de janelas (frames) na saida atual. Se houver quatro níveis, será esperado informação sobre quatro níveis de funções chamadas. Se não for dada nenhuma linha de janela (frame) assume que o valor é 0 (o erro aconteceu no início). </TD ></TR ><TR ><TD > <TT CLASS="literal" >function</TT ></TD ><TD > Nome da função onde o erro ocorreu. Será repetida para cada vez que a função for chamada dentro da pilha. </TD ></TR ><TR ><TD ><TT CLASS="literal" >end</TT ></TD ><TD > Informa ao programa que a mensagem de debug termina aqui. </TD ></TR ></TBODY ></TABLE ></DIV > </P ></DD ><DT ><TT CLASS="replaceable" ><I >dados</I ></TT ></DT ><DD ><P >Linha de dados.</P ></DD ></DL ></DIV > <DIV CLASS="table" ><A NAME="AEN276620" ></A ><P ><B >Tabela F-2. Tipos de erros de debug</B ></P ><TABLE BORDER="1" CLASS="CALSTABLE" ><COL><COL><THEAD ><TR ><TH >Debugador</TH ><TH >Interno do PHP 3</TH ></TR ></THEAD ><TBODY ><TR ><TD ><SPAN CLASS="errortype" >warning (alerta, atenção)</SPAN ></TD ><TD ><SPAN CLASS="errortype" >E_WARNING</SPAN ></TD ></TR ><TR ><TD ><SPAN CLASS="errortype" >error (erro)</SPAN ></TD ><TD ><SPAN CLASS="errortype" >E_ERROR</SPAN ></TD ></TR ><TR ><TD ><SPAN CLASS="errortype" >parse (interpretação)</SPAN ></TD ><TD ><SPAN CLASS="errortype" >E_PARSE</SPAN ></TD ></TR ><TR ><TD ><SPAN CLASS="errortype" >notice (notificação)</SPAN ></TD ><TD ><SPAN CLASS="errortype" >E_NOTICE</SPAN ></TD ></TR ><TR ><TD ><SPAN CLASS="errortype" >core-error (erro grave)</SPAN ></TD ><TD ><SPAN CLASS="errortype" >E_CORE_ERROR</SPAN ></TD ></TR ><TR ><TD ><SPAN CLASS="errortype" >core-warning (aviso grave)</SPAN ></TD ><TD ><SPAN CLASS="errortype" >E_CORE_WARNING</SPAN ></TD ></TR ><TR ><TD ><SPAN CLASS="errortype" >unknown (desconhecido)</SPAN ></TD ><TD >(qualquer outro)</TD ></TR ></TBODY ></TABLE ></DIV > <TABLE WIDTH="100%" BORDER="0" CELLPADDING="0" CELLSPACING="0" CLASS="EXAMPLE" ><TR ><TD ><DIV CLASS="example" ><A NAME="AEN276662" ></A ><P ><B >Exemplo F-1. Exemplo de uma mensagem de Debug</B ></P ><P CLASS="literallayout" ><br> <br> 1998-04-05 23:27:400966 lucifer.guardian.no(20481) start: notice<br> 1998-04-05 23:27:400966 lucifer.guardian.no(20481) message: Uninitialized variable<br> 1998-04-05 23:27:400966 lucifer.guardian.no(20481) location: (null):7<br> 1998-04-05 23:27:400966 lucifer.guardian.no(20481) frames: 1<br> 1998-04-05 23:27:400966 lucifer.guardian.no(20481) function: display<br> 1998-04-05 23:27:400966 lucifer.guardian.no(20481) location: /home/ssb/public_html/test.php3:10<br> 1998-04-05 23:27:400966 lucifer.guardian.no(20481) end: notice<br> <br> </P ></DIV ></TD ></TR ></TABLE > </P ></DIV ><DIV CLASS="NAVFOOTER" ><HR ALIGN="LEFT" WIDTH="100%"><TABLE SUMMARY="Footer navigation table" WIDTH="100%" BORDER="0" CELLPADDING="0" CELLSPACING="0" ><TR ><TD WIDTH="33%" ALIGN="left" VALIGN="top" ><A HREF="debugger-using.html" ACCESSKEY="P" >Anterior</A ></TD ><TD WIDTH="34%" ALIGN="center" VALIGN="top" ><A HREF="index.html" ACCESSKEY="H" >Principal</A ></TD ><TD WIDTH="33%" ALIGN="right" VALIGN="top" ><A HREF="configure.html" ACCESSKEY="N" >Próxima</A ></TD ></TR ><TR ><TD WIDTH="33%" ALIGN="left" VALIGN="top" >Utilizando o debugador</TD ><TD WIDTH="34%" ALIGN="center" VALIGN="top" ><A HREF="debugger.html" ACCESSKEY="U" >Acima</A ></TD ><TD WIDTH="33%" ALIGN="right" VALIGN="top" >Opções do script Configure</TD ></TR ></TABLE ></DIV ></BODY ></HTML >