tronic Fri Dec 21 20:54:53 2001 EDT Modified files: /phpdoc/ru/appendices debugger.xml Log: Minor translation fixups.
Index: phpdoc/ru/appendices/debugger.xml diff -u /dev/null phpdoc/ru/appendices/debugger.xml:1.4 --- /dev/null Fri Dec 21 20:54:53 2001 +++ phpdoc/ru/appendices/debugger.xml Fri Dec 21 20:54:53 2001 @@ -0,0 +1,277 @@ +<?xml version="1.0" encoding="windows-1251"?> +<!-- $Revision: 1.4 $ --> + <appendix id="debugger"> + <title>Отлаживание PHP 3</title> + + <sect1 id="debugger-about"> + <title>Об отладчике</title> + <simpara> + В PHP 3 входит поддержка отладчика, основанного на сетевой технологии. + </simpara> + <simpara> + PHP 4 пока не обладает такой возможностью. + </simpara> + </sect1> + + <sect1 id="debugger-using"> + <title>Использование отладчика</title> + + <para> + Внутренний отладчик PHP 3 бывает полезен для отслеживания + трудновыявляемых ошибок. Отладчик начинает работу по порту + <acronym>TCP</acronym> каждый раз во время запуска PHP 3. + Все сообщения об ошибках отсылаются через установленное + TCP-соединение. Эта информация предназначена для + "отладочного сервера", который может быть запущен в + <acronym>IDE</acronym> или программируемом редакторе (например, Emacs). + </para> + <para> + Как настроить отладчик: + <orderedlist> + <listitem> + <simpara> + Настройте TCP-порт отладчика в <link + linkend="configuration.file">файле конфигурации</link> (<link + linkend="ini.debugger.port">debugger.port</link>) и включите его + (<link linkend="ini.debugger.enabled">debugger.enabled</link>). + </simpara> + </listitem> + <listitem> + <simpara> + Настройте на этот порт TCP listener (например, + <command>socket -l -s 1400</command> на платформе Unix). + </simpara> + </listitem> + <listitem> + <simpara> + В вашем коде поместите вызов функции + "debugger_on(<replaceable>host</replaceable>)", где + <replaceable>host</replaceable> - IP или имя машины, + на которой запущен <acronym>TCP</acronym> listener. + </simpara> + </listitem> + </orderedlist> + Теперь все предупреждения, замечания и т.д. будут приниматься + сокетом listener'а, <emphasis>даже если вы отключили их вывод + функцией <function>error_reporting</function></emphasis>. + </para> + </sect1> + + <sect1 id="debugger-protocol"> + <title>Протокол отладчика</title> + <para> + Протокол отладчика PHP 3 основан на строках. Каждая строка + имеет <emphasis>тип</emphasis>, а несколько строк образуют + <emphasis>сообщение</emphasis>. Каждое сообщение начинается + строкой типа <literal>start</literal> и заканчивается строкой + типа <literal>end</literal>. PHP 3 может одновременно рассылать + строки для отдельных сообщений. + </para> + <para> + Строка имеет следующий формат: + <informalexample> + <literallayout> +<replaceable>date</replaceable> <replaceable>time</replaceable> +<replaceable>host</replaceable>(<replaceable>pid</replaceable>) +<replaceable>type</replaceable>: +<replaceable>message-data</replaceable> + </literallayout> + </informalexample> + <variablelist> + <varlistentry> + <term><replaceable>date</replaceable></term> + <listitem> + <simpara> + Дата в формате ISO 8601 + +(<replaceable>гггг</replaceable>-<replaceable>мм</replaceable>-<replaceable>дд</replaceable>) + </simpara> + </listitem> + </varlistentry> + <varlistentry> + <term><replaceable>time</replaceable></term> + <listitem> + <simpara>Время с указанием микросекунд: + +<replaceable>чч</replaceable>:<replaceable>мм</replaceable>:<replaceable>мкрсек</replaceable> + </simpara> + </listitem> + </varlistentry> + <varlistentry> + <term><replaceable>host</replaceable></term> + <listitem> + <simpara> + Имя DNS или IP-адрес машины, где произошла ошибка выполнения + скрипта PHP 3. + </simpara> + </listitem> + </varlistentry> + <varlistentry> + <term><replaceable>pid</replaceable></term> + <listitem> + <simpara> + PID (идентификатор процесса) скрипта на машине + <replaceable>host</replaceable>, где произошла ошибка при + выполнении скрипта PHP 3. + </simpara> + </listitem> + </varlistentry> + <varlistentry> + <term><replaceable>type</replaceable></term> + <listitem> + <para> + Тип строки. Сообщает принимающей программе, как воспринимать + последующие данные: + <table> + <title>Типы строк отладчика</title> + <tgroup cols="2"> + <thead> + <row> + <entry>Название</entry> + <entry>Обозначение</entry> + </row> + </thead> + <tbody> + <row> + <entry><literal>start</literal></entry> + <entry> + Сообщает принимающей программе о начале сообщения + отладчика. Содержание <replaceable>data</replaceable> + будет интерпретировано как один из типов сообщения об ошибке, + перечисленных ниже. + </entry> + </row> + <row> + <entry><literal>message</literal></entry> + <entry>Сообщение об ошибке PHP 3.</entry> + </row> + <row> + <entry><literal>location</literal></entry> + <entry> + Имя файла и номер строки, где произошал ошибка. + Первая строка <literal>location</literal> всегда + будет содержать указание на верхний уровень. + <replaceable>data</replaceable> будет содержать + +<literal><replaceable>file</replaceable>:<replaceable>line</replaceable></literal>. + После каждой строки <literal>function</literal> и + строки <literal>message</literal> всегда будет + находиться строка <literal>location</literal>. + </entry> + </row> + <row> + <entry> + <literal>frames</literal></entry> <entry>Количество "frames" + (кадров) в последующем дампе стека. Например, если указано четыре + кадра, то следует ожидать информации о четырех уровнях + вызываемых функций. Если строка "frames" отсутствует, + глубина вложенности должна считаться нулевой (ошибка + произошла на верхнем уровне выполнения). + </entry> + </row> + <row> + <entry> + <literal>function</literal></entry> + <entry> + Имя функции, в которой произошла ошибка. Строка + будет единожды повторяться для каждого уровня вложенности + в стеке вызова функции. + </entry> + </row> + <row> + <entry><literal>end</literal></entry> + <entry> + Сообщает принимающей программе об окончании + сообщения отладчика. + </entry> + </row> + </tbody> + </tgroup> + </table> + </para> + </listitem> + </varlistentry> + <varlistentry> + <term><replaceable>data</replaceable></term> + <listitem> + <simpara>Строковые данные.</simpara> + </listitem> + </varlistentry> + </variablelist> + + <table> + <title>Типы ошибок отладчика</title> + <tgroup cols="2"> + <thead> + <row> + <entry>Отладчик</entry> + <entry>Внутреннее обозначение PHP 3</entry> + </row> + </thead> + <tbody> + <row> + <entry><errortype>warning</errortype></entry> + <entry><errortype>E_WARNING</errortype></entry> + </row> + <row> + <entry><errortype>error</errortype></entry> + <entry><errortype>E_ERROR</errortype></entry> + </row> + <row> + <entry><errortype>parse</errortype></entry> + <entry><errortype>E_PARSE</errortype></entry> + </row> + <row> + <entry><errortype>notice</errortype></entry> + <entry><errortype>E_NOTICE</errortype></entry> + </row> + <row> + <entry><errortype>core-error</errortype></entry> + <entry><errortype>E_CORE_ERROR</errortype></entry> + </row> + <row> + <entry><errortype>core-warning</errortype></entry> + <entry><errortype>E_CORE_WARNING</errortype></entry> + </row> + <row> + <entry><errortype>unknown</errortype></entry> + <entry>(любой другой)</entry> + </row> + </tbody> + </tgroup> + </table> + + <example> + <title>Пример сообщения отладчика</title> + <literallayout> +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 + </literallayout> + </example> + </para> + </sect1> + + </appendix> + +<!-- Keep this comment at the end of the file +Local variables: +mode: sgml +sgml-omittag:t +sgml-shorttag:t +sgml-minimize-attributes:nil +sgml-always-quote-attributes:t +sgml-indent-step:1 +sgml-indent-data:t +indent-tabs-mode:nil +sgml-parent-document:nil +sgml-default-dtd-file:"../../manual.ced" +sgml-exposed-tags:nil +sgml-local-catalogs:nil +sgml-local-ecat-files:nil +End: +vim600: syn=xml fen fdm=syntax fdl=2 si +vim: et tw=78 syn=sgml +vi: ts=1 sw=1 +-->