tronic          Thu Nov 22 17:28:24 2001 EDT

  Added files:                 
    /phpdoc/ru/appendices       debugger.xml 
  Log:
  Translation done.
  

Index: phpdoc/ru/appendices/debugger.xml
+++ phpdoc/ru/appendices/debugger.xml
<?xml version="1.0" encoding="windows-1251"?>
<!-- $Revision: 1.1 $ -->
 <appendix id="debugger">
  <title>Отладчик PHP</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. Все сообщения об ошибках отсылаются
    по установленному соединению. Эта информация предназначается
    для отладочного сервера, который может выполняться внутри
    <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>
    Теперь все предупреждения, замечания и т.д. будут выводиться
    средствами TCP 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>дата</replaceable> <replaceable>время</replaceable>
<replaceable>хост</replaceable>(<replaceable>pid</replaceable>)
<replaceable>тип</replaceable>:
<replaceable>сообщение</replaceable>
     </literallayout>
    </informalexample>
    <variablelist>
     <varlistentry>
      <term><replaceable>дата</replaceable></term>
      <listitem>
       <simpara>
        Дата в формате ISO 8601
        
(<replaceable>гггг</replaceable>-<replaceable>мм</replaceable>-<replaceable>дд</replaceable>)
       </simpara>
      </listitem>
     </varlistentry>
     <varlistentry>
      <term><replaceable>время</replaceable></term>
      <listitem>
       <simpara>Время (с точностью до миллисекунд):
        
<replaceable>чч</replaceable>:<replaceable>мм</replaceable>:<replaceable>мксмкс</replaceable>
       </simpara>
      </listitem>
     </varlistentry>
     <varlistentry>
      <term><replaceable>хост</replaceable></term>
      <listitem>
       <simpara>
        Имя DNS или адрес IP хоста, где произошла ошибка во время
        выполнения скрипта.
       </simpara>
      </listitem>
     </varlistentry>
     <varlistentry>
      <term><replaceable>pid</replaceable></term>
      <listitem>
       <simpara>
        PID (идентификатор процесса) на <replaceable>хосте</replaceable>,
        где PHP 3 сгенерировал ошибку во время выполнения скрипта.
       </simpara>
      </listitem>
     </varlistentry>
     <varlistentry>
      <term><replaceable>тип</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>данных</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>файл</replaceable>:<replaceable>строку</replaceable></literal>.
             После <literal>message</literal> и после каждой 
<literal>function</literal>
             всегда будет строка <literal>location</literal>.
            </entry>
           </row>
           <row>
            <entry>
             <literal>frames</literal></entry> <entry>Количество кадров
             в последующем дампе стека. Если перечислено четыре кадра,
             следует ожидать информации о выполненных функциях с
             четырьмя уровнями вложенности. Если строка "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>(any other)</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
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
-->

Reply via email to