summaryrefslogtreecommitdiffstats
path: root/tde-i18n-ru/docs/tdevelop/tdevelop/debugger.docbook
diff options
context:
space:
mode:
Diffstat (limited to 'tde-i18n-ru/docs/tdevelop/tdevelop/debugger.docbook')
-rw-r--r--tde-i18n-ru/docs/tdevelop/tdevelop/debugger.docbook329
1 files changed, 329 insertions, 0 deletions
diff --git a/tde-i18n-ru/docs/tdevelop/tdevelop/debugger.docbook b/tde-i18n-ru/docs/tdevelop/tdevelop/debugger.docbook
new file mode 100644
index 00000000000..cff2b7ab18e
--- /dev/null
+++ b/tde-i18n-ru/docs/tdevelop/tdevelop/debugger.docbook
@@ -0,0 +1,329 @@
+<chapter id="debugger">
+<title
+>Интерфейс отладчика</title>
+<indexterm zone="debugger"
+><primary
+>отладчик</primary
+></indexterm>
+
+<para
+>Для C и C++ &tdevelop; содержит встроенный отладчик, интегрированный с редактором. Технически это реализовано как внешний интерфейс для отладчика &GNU; <application
+>gdb</application
+> через каналы (pipe). Отладчик можно запустить несколькими способами: </para>
+
+<itemizedlist>
+<listitem>
+<para
+>Через пункт меню <menuchoice
+><guimenu
+>Отладка</guimenu
+><guimenuitem
+>Запуск</guimenuitem
+></menuchoice
+>, после чего в отладчик загрузится главная программа вашего проекта. </para>
+</listitem>
+
+<listitem>
+<para
+>Через пункт меню <menuchoice
+><guimenu
+>Отладка</guimenu
+> <guimenuitem
+>Запуск другого</guimenuitem
+> <guimenuitem
+>Загрузить файл core</guimenuitem
+></menuchoice
+> загрузится core-файл, генерируемый ядром системы после сбоя программы (это может быть выключено в вашей системе, см. <application
+>ulimit(1)</application
+>). Эта отладка полезна для анализа сбоев программы. </para>
+</listitem>
+
+<listitem>
+<para
+>Через пункт меню <menuchoice
+><guimenu
+>Отладка</guimenu
+> <guimenuitem
+>Запуск другого</guimenuitem
+> <guimenuitem
+>Присоединить к процессу</guimenuitem
+></menuchoice
+> отладчик подстроится к уже запущенной программе. Вам нужно будет выбрать её из списка запущенных процессов. </para>
+</listitem>
+
+<listitem>
+<para
+>Помните, что отладка возможна только если программа была скомпилирована с информацией для отладки. Это можно установить в диалоге <guibutton
+>Параметры компилятора</guibutton
+>. Информация для отладки помогает найти соответствие между именами файлов, строчками и адресами в программе. </para>
+</listitem>
+</itemizedlist>
+
+<para
+>Отладчик предлагает несколько видов информации о процессе: </para>
+
+<para
+>При попытке запуска отладки проекта без отладочной информации вы получите сообщение <computeroutput
+>Нет исходного кода...</computeroutput
+> в строке состояния. При установке точки останова, она будет показана в панели точек останова как <computeroutput
+>В ожидании (добавление)</computeroutput
+> (см. ниже). </para>
+
+<variablelist>
+<varlistentry>
+<term
+>Переменные</term>
+<listitem>
+<indexterm zone="debugger"
+><primary
+>наблюдать переменные</primary
+></indexterm>
+<para
+>Окно содержит список значений всех локальных переменных на текущей точке выполнения. </para>
+
+<para
+>Можно наблюдать как локальные, так и глобальные переменные. Добавить переменную можно либо нажатием кнопки <guibutton
+>Добавить</guibutton
+>, либо нажатием клавиши <keycap
+>Enter</keycap
+> на выбранном пункте <guilabel
+>Наблюдение</guilabel
+>. Удалить их можно через контекстное меню. </para>
+</listitem>
+</varlistentry>
+
+<varlistentry>
+<term
+>Фреймовый стек</term>
+<listitem>
+<indexterm zone="debugger"
+><primary
+>фреймовый стек</primary
+></indexterm>
+<para
+>(... в процессе написания ...) </para>
+</listitem>
+</varlistentry>
+
+<varlistentry>
+<term
+>Точки останова</term>
+<listitem>
+<indexterm zone="debugger"
+><primary
+>точки останова</primary
+></indexterm>
+<para
+>Данная панель позволяет просматривать и управлять точками останова. Для непосредственной отладки используется <application
+>GDB</application
+>, так что для полного понимания всех возможностей отладки &tdevelop; необходимо базовое представление о принципе работы <ulink url="http://www.gnu.org/software/gdb"
+>GDB</ulink
+>. </para>
+
+<para
+>Исходный код, содержащий определение точек останова, находится в файле <filename
+>tdevelop/languages/cpp/debugger/breakpoint.h</filename
+>. </para>
+
+<para
+>На левом краю панели имеются кнопки со следующими функциями:</para>
+
+<itemizedlist>
+<listitem
+><para
+>Добавление пустой точки останова</para
+></listitem>
+<listitem
+><para
+>Изменение выбранной точки останова</para
+></listitem>
+ <listitem
+><para
+>Удаление выбранной точки останова</para
+></listitem>
+<listitem
+><para
+>Удаление всех точек останова</para
+></listitem>
+</itemizedlist>
+
+<para
+>Основная часть панели - таблица с 7 столбцами. Каждой строке таблицы соответствует одна точка останова. Столбцы:</para>
+
+<orderedlist>
+<listitem
+><para
+>Переключатель для выбора точек</para
+></listitem>
+<listitem
+><para
+>Тип: Ошибка, Файл:строка, Точка наблюдения, Адрес или Метод</para
+></listitem>
+<listitem
+><para
+>Статус:</para>
+<itemizedlist>
+ <listitem
+><para
+>Разрешена</para
+></listitem>
+ <listitem
+><para
+>Запрещена: если точка останова запрещена, при отладке она пропускается.</para
+></listitem>
+ <listitem
+><para
+>В ожидании (добавление): показывается при отсутствии отладочной информации. Из info-страницы GDB: <blockquote
+><para
+>Если указанное расположение точки останова найти не удалось, это может быть из-за того, что библиотека, в которой оно находится, ещё не загружена. В этом случае можно создать особую точку останова (<quote
+>pending breakpoint</quote
+>), действие которой откладывается до хагрухки необходимой библиотеки.</para
+> </blockquote
+> </para
+></listitem>
+</itemizedlist>
+</listitem>
+<listitem
+><para
+>В ожидании (очистка)</para
+></listitem>
+<listitem
+><para
+>В ожидании (изменение)</para
+></listitem>
+<listitem
+><para
+>Расположение в формате файл:строка</para
+></listitem>
+<listitem
+><para
+>Условие</para
+></listitem>
+<listitem
+><para
+>Счётчик игнорирования: если число <varname
+>N</varname
+> больше нуля, то в первые <varname
+>N</varname
+> раз при достижении точки останова выполнение программы остановленр не будет.</para
+></listitem>
+<listitem
+><para
+>Попадания: количество достижений точки останова.</para
+></listitem>
+</orderedlist>
+
+
+</listitem>
+</varlistentry>
+
+<varlistentry>
+<term
+>Дизассемблирование</term>
+<listitem>
+<indexterm zone="debugger"
+><primary
+>дизассемблирование</primary
+></indexterm>
+<para
+>(... в процессе написания ...)</para>
+
+</listitem>
+</varlistentry>
+</variablelist>
+
+
+<sect1 id="settingbreakpoints">
+<title
+>Установка точек останова</title>
+
+<para
+>(... в процессе написания ...) </para>
+
+</sect1
+> <!-- settingbreakpoints -->
+
+<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
+
+<sect1 id ="debuggeroptions">
+<title
+>Параметры</title>
+
+<variablelist>
+<varlistentry>
+<term
+>Отобразить обработанные имена</term>
+<listitem>
+<indexterm zone="debugger"
+><primary
+>обработка имён</primary
+></indexterm>
+<indexterm zone="debugger"
+><primary
+>mangle</primary
+><secondary
+>имя</secondary
+></indexterm>
+
+<para
+>В программе, написанной на C++, имена функций изменяются (<quote
+>mangled</quote
+>), то есть к начальному имени функции добавляется информация о типах аргументов, которые она принимает. Это необходимо для перегрузки (overload) функций. Алгоритм такой обработки не стандартизован и имеет различные реализации даже в разных версиях компилятора &GNU; C++. </para>
+
+<para
+>В окне дизассемблирования отображаются не изменённые имена, однако это можно изменить. </para>
+</listitem>
+</varlistentry>
+
+<varlistentry>
+<term
+>Попробуйте установку точек останова по загрузке библиотеки</term>
+<listitem>
+<indexterm zone="debugger"
+><primary
+>"ленивые" точки останова</primary
+></indexterm>
+<indexterm zone="debugger"
+><primary
+>точки останова</primary
+><secondary
+>lazy</secondary
+></indexterm>
+
+<para
+>Отладчик <application
+>gdb</application
+> не разрешает устанавливать точки останова в коде, не загруженном в данный момент. В приложении с модульной структурой, где код загружается только по требованию (через функцию libc <function
+>dlopen(3)</function
+>). Возможность установки точек останова в библиотеках предоставляет &tdevelop;. Таким образом, точки останова ставятся в своеобразную очередь и передаются <application
+>gdb</application
+> только после загрузки необходимой библиотеки. </para>
+</listitem>
+</varlistentry>
+
+<varlistentry>
+<term
+>Включить плавающую панель</term>
+<listitem>
+<indexterm zone="debugger"
+><primary
+>панель инструментов отладчика</primary
+></indexterm>
+<indexterm zone="debugger"
+><primary
+>панель инструментов</primary
+><secondary
+>отладчик</secondary
+></indexterm>
+
+<para
+>(... в процессе написания ...) </para>
+</listitem>
+</varlistentry>
+</variablelist>
+
+</sect1
+> <!-- debuggeroptions -->
+
+</chapter
+> <!-- debugger -->