# KDbg - Руководство пользователя

## Содержание

- Введение
- Использование KDbg
- Информационные окна KDbg
- Советы и пр.
- Для опытных пользователей: Таблицы типов
- Известные проблемы
- Автор

## Введение

KDbg является графическим интерфейсом к `gdb`, отладчиком проекта GNU.

Это означает, что KDbg сам по себе не является отладчиком. Скорее, он общается с `gdb`, отладчиком, использующим командную строку, посылая ему команды и получая их результат, например, значения переменных. Пункты меню и указания мышью преобразуются в последовательность команд `gdb`, а результат преобразуется к более-менее визуальному представлению, такому как структурное содержимое переменных.

Обобщение выше сказанного - KDbg целиком зависит от возможностей используемого отладчика `gdb`. KDbg не может делать больше, чем делает `gdb`. Например, если имеющаяся у вас версия `gdb` не поддерживает отладку многопоточных программ, то и KDbg не поможет вам в этом (несмотря на то, что он выводит окно потоков).

## Использование KDbg

Перед началом использования KDbg вы наверное захотите просмотреть опции в диалоге Глобальные Опции, который можно вызвать из пункта меню Файл|Глобальные Опции.

#### Указание отлаживаемой программы

Для отладки программы выберите пункт меню Файл|Исполняемые модули. Если вы ранее отлаживали эту программу, вы можете выбрать ее из пункта Файл|Последние Исполняемые Модули. Программа загрузится.

Если вы хотите произвести отладку по дампу памяти, то сначала вы должны загрузить программу, породившую этот дамп, а потом загрузить сам дамп, выбрав пункт меню Файл|Дамп Памяти. Теперь KDbg перейдет в ту точку программы, которая вызвала создание дампа памяти.

Теперь вы можете устанавливать точки останова, ипользуя меню Breakpoint, меню, вызваемое правой кнопкой мышы, или окно точек останова.

Также вы можете установить настройки только для отлаживаемой в данный момент программы в диалоге Настройки Программы, вызываемом пунктом меню Файл|Настройки.

#### Исполнение программы

Теперь запустите программу, выбрав пункт меню Исполнение|Запуск. Теперь программа будет исполняться обычным образом до тех пор, пока она либо не окончится, либо не попадет в точку останова или точку просмотра, либо не получит сигнал.

Вы можете запустить программу с аргументами, установить рабочий каталог, а также переменные окружения для данной программы. Для этого выберите пункт меню Исполнение|Аргументы и укажите ваши параметры в диалоге Аргументы Программы (перед запуском программы).

Вы также можете подключиться к уже работающей программе. Для этого загрузите исполняемый модуль, как описано выше. Затем выберите пункт меню Исполнение|Подсоединиться. Укажите идентификатор процесса и кликните на OK. Работающая программа будет остановлена (но не прервана), а в окне исходных текстов будет указана текущая точка останова.

#### Программа остановлена - что теперь?

Когда программа останавливается в точке останова, просмотра или при получении сигнала, в окне исходных текстов указывается текущая строка остановки программы. Часто встречается ситуация, когда программа останавливается, получая сигнал (обычно `SIGSEGV`), находясь в функции, которую вы вызываете из своей программы, но сами не разрабатывали. В этом случае просмотрите окно стека и найдите функцию, которую писали вы (начиная с вершины списка) и кликните на нее. Это укажет вам место, с которого вы сможете начать поиск ошибки в вашей программе.

В меню Исполнение вы найдете команды, которые вам понадобятся для запуска программы, пошаговой отладке, прерывания исполнения программы (Прерывание). Важные команды, такие как Запуск и все виды Шагов, привязаны к функциональным клавишам, которыми рекомендуется пользоваться для повышения эффективности отладки.
Эти функции не настраиваются, но может вы захотите внести свой вклад и разработать эту функциональность?

В меню Точки останова вы найдете команды для установки, снятия, включени и выключения временных и постоянных точек останова. Вы можете вывести список точек останова в окно точек останова. Вы также может установить точку останова, кликнув левой кнопкой мыши в левое поле строки исходного текста. Для включения и выключения точки останова кликните средней кнопкой мыши на точку останова.

Шестеренка на панели инструментов показывает, что gdb работает, в этом случае она вертится. Когда она вертится быстро, KDbg не будет принимать команды исполнения, а если она вращается медленно, то KDbg считывает значения переменных.

## Информационные окна KDbg

KDbg выводит информацию и принимает команды в различных окнах. В меню Вид вы обнаружите команды для вызова и закрытия этих окон. Все эти окна вы можете размещать так, как вам удобно.

- Окно исходных текстов
- Окно локальных переменных
- Окно стека
- Окно отслеживаемых выражений
- Список точек останова
- Окно вывода
- Окно содержимого регистров
- Окно образа памяти
- Окно потоков

## Советы и пр.

Следующие разделы содержат полезные сведения об использовании KDbg.

- Полезные Советы
- Как я могу...?

## Известные проблемы

gdb 4.16 имеет проблемы с обработкой классов С++ с виртуальным базовым классом. (Такие классы обычно встречаются в программах, использующих CORBA.) Он прерывается по ошибке сегментации, а KDbg сообщает о том, что gdb неожиданно завершился. К сожалению, с этим ничего нельзя сделать. Вам придется перезапустить gdb, выбрав пункт меню Файл|Исполняемый модуль, который перезапустит сессию отладки.

Распознавание типов в KDbg работает только для библиотек, динамически линкуемых с отлаживаемой программой.

## Автор

KDbg разработан Johannes Sixt с помощью многих остальных.
Домашняя страница KDbg расположена по адресу http://www.kdbg.org/.