|
|
<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
|
|
|
<html>
|
|
|
<head>
|
|
|
<meta http-equiv="Content-Type" content="text/html; charset=koi8-r">
|
|
|
<meta name="Author" content="Johannes Sixt">
|
|
|
<title>KDbg - Руководство Пользователя</title>
|
|
|
</head>
|
|
|
<body text="#000000" bgcolor="#FFFFFF" link="#0000EF" vlink="#51188E" alink="#FF0000">
|
|
|
|
|
|
<h1>KDbg - Руководство пользователя</h1>
|
|
|
|
|
|
<h2>Содержание</h2>
|
|
|
|
|
|
<ul>
|
|
|
<li>
|
|
|
<a href="#Introduction">Введение</a></li>
|
|
|
|
|
|
<li>
|
|
|
<a href="#UsingKDbg">Использование KDbg</a></li>
|
|
|
|
|
|
<li>
|
|
|
<a href="#InfoWindows">Информационные окна KDbg</a></li>
|
|
|
|
|
|
<li>
|
|
|
<a href="#Tips">Советы и пр.</a></li>
|
|
|
|
|
|
<li>Для опытных пользователей: <a href="types.html">Таблицы типов</a></li>
|
|
|
|
|
|
<li>
|
|
|
<a href="#KnownProblems">Известные проблемы</a></li>
|
|
|
|
|
|
<li>
|
|
|
<a href="#Author">Автор</a></li>
|
|
|
</ul>
|
|
|
|
|
|
<hr>
|
|
|
<h2>
|
|
|
<a NAME="Introduction"></a>Введение</h2>
|
|
|
KDbg является графическим интерфейсом к <tt>gdb</tt>, отладчиком проекта GNU.
|
|
|
<p>Это означает, что KDbg сам по себе не является отладчиком. Скорее, он
|
|
|
общается с <tt>gdb</tt>, отладчиком, использующим командную строку, посылая ему
|
|
|
команды и получая их результат, например, значения переменных. Пункты меню и
|
|
|
указания мышью преобразуются в последовательность команд <tt>gdb</tt>, а
|
|
|
результат преобразуется к более-менее визуальному представлению, такому как
|
|
|
структурное содержимое переменных.
|
|
|
<p>Обобщение выше сказанного - KDbg целиком зависит от возможностей
|
|
|
используемого отладчика <tt>gdb</tt>. KDbg не может делать больше, чем делает
|
|
|
<tt>gdb</tt>. Например, если имеющаяся у вас версия <tt>gdb</tt> не
|
|
|
поддерживает отладку многопоточных программ, то и KDbg не поможет вам в этом
|
|
|
(несмотря на то, что он выводит окно потоков).
|
|
|
|
|
|
<h2>
|
|
|
<a NAME="UsingKDbg"></a>Использование KDbg</h2>
|
|
|
Перед началом использования KDbg вы наверное захотите просмотреть опции в
|
|
|
диалоге <a href="globaloptions.html">Глобальные Опции</a>, который можно
|
|
|
вызвать из пункта меню <i>Файл|Глобальные Опции</i>.
|
|
|
<h4>Указание отлаживаемой программы</h4>
|
|
|
Для отладки программы выберите пункт меню <i>Файл|Исполняемые модули</i>. Если
|
|
|
вы ранее отлаживали эту программу, вы можете выбрать ее из пункта
|
|
|
<i>Файл|Последние Исполняемые Модули</i>. Программа загрузится.
|
|
|
<p>Если вы хотите произвести отладку по дампу памяти, то сначала вы должны
|
|
|
загрузить программу, породившую этот дамп, а потом загрузить сам дамп, выбрав
|
|
|
пункт меню <i>Файл|Дамп Памяти</i>. Теперь KDbg перейдет в ту точку программы,
|
|
|
которая вызвала создание дампа памяти.
|
|
|
<p>Теперь вы можете устанавливать точки останова, ипользуя меню
|
|
|
<i>Breakpoint</i>, меню, вызваемое правой кнопкой мышы, или
|
|
|
<a href="breakptlist.html">окно точек останова</a>.
|
|
|
<p>Также вы можете установить настройки только для отлаживаемой в данный момент
|
|
|
программы в диалоге <a href="pgmsettings.html">Настройки Программы</a>,
|
|
|
вызываемом пунктом меню <i>Файл|Настройки</i>.
|
|
|
|
|
|
<h4>Исполнение программы</h4>
|
|
|
Теперь запустите программу, выбрав пункт меню <i>Исполнение|Запуск</i>. Теперь
|
|
|
программа будет исполняться обычным образом до тех пор, пока она либо не
|
|
|
окончится, либо не попадет в точку останова или точку просмотра, либо не
|
|
|
получит сигнал.
|
|
|
<p>Вы можете запустить программу с аргументами, установить рабочий каталог, а
|
|
|
также переменные окружения для данной программы. Для этого выберите пункт меню
|
|
|
<i>Исполнение|Аргументы</i> и укажите ваши параметры в диалоге
|
|
|
<a href="argspwdenv.html">Аргументы Программы</a> (перед запуском программы).
|
|
|
<p>Вы также можете подключиться к уже работающей программе. Для этого загрузите
|
|
|
исполняемый модуль, как описано выше. Затем выберите пункт меню
|
|
|
<i>Исполнение|Подсоединиться</i>. Укажите идентификатор процесса и кликните на
|
|
|
<i>OK</i>. Работающая программа будет остановлена (но не прервана), а в окне
|
|
|
исходных текстов будет указана текущая точка останова.
|
|
|
|
|
|
<h4>Программа остановлена - что теперь?</h4>
|
|
|
Когда программа останавливается в точке останова, просмотра или при получении
|
|
|
сигнала, в <a href="sourcecode.html">окне исходных текстов</a> указывается
|
|
|
текущая строка остановки программы. Часто встречается ситуация, когда программа
|
|
|
останавливается, получая сигнал (обычно <tt>SIGSEGV</tt>), находясь в функции,
|
|
|
которую вы вызываете из своей программы, но сами не разрабатывали. В этом
|
|
|
случае просмотрите <a href="stack.html">окно стека</a> и найдите функцию,
|
|
|
которую писали вы (начиная с вершины списка) и кликните на нее. Это укажет вам
|
|
|
место, с которого вы сможете начать поиск ошибки в вашей программе.
|
|
|
<p>В меню <i>Исполнение</i> вы найдете команды, которые вам понадобятся для
|
|
|
запуска программы, пошаговой отладке, прерывания исполнения программы
|
|
|
(<i>Прерывание</i>). Важные команды, такие как <i>Запуск</i> и все виды
|
|
|
<i>Шагов</i>, привязаны к функциональным клавишам, которыми рекомендуется
|
|
|
пользоваться для повышения эффективности отладки.
|
|
|
<br><font size=-1>Эти функции не настраиваются, но может вы захотите внести
|
|
|
свой вклад и разработать эту функциональность?</font>
|
|
|
<p>В меню <i>Точки останова</i> вы найдете команды для установки, снятия,
|
|
|
включени и выключения временных и постоянных точек останова. Вы можете вывести
|
|
|
список точек останова в <a href="breakptlist.html">окно точек останова</a>.
|
|
|
Вы также может установить точку останова, кликнув левой кнопкой мыши в левое
|
|
|
поле строки исходного текста. Для включения и выключения точки останова
|
|
|
кликните средней кнопкой мыши на точку останова.
|
|
|
<p>Шестеренка на панели инструментов показывает, что gdb работает, в этом
|
|
|
случае она вертится. Когда она вертится быстро, KDbg не будет принимать
|
|
|
команды исполнения, а если она вращается медленно, то KDbg считывает значения
|
|
|
переменных.
|
|
|
<h2>
|
|
|
<a NAME="InfoWindows"></a>Информационные окна KDbg</h2>
|
|
|
KDbg выводит информацию и принимает команды в различных окнах. В меню
|
|
|
<i>Вид</i> вы обнаружите команды для вызова и закрытия этих окон. Все эти окна
|
|
|
вы можете размещать так, как вам удобно.
|
|
|
|
|
|
<ul>
|
|
|
<li>
|
|
|
<a href="sourcecode.html">Окно исходных текстов</a></li>
|
|
|
|
|
|
<li>
|
|
|
<a href="localvars.html">Окно локальных переменных</a></li>
|
|
|
|
|
|
<li>
|
|
|
<a href="stack.html">Окно стека</a></li>
|
|
|
|
|
|
<li>
|
|
|
<a href="watches.html">Окно отслеживаемых выражений</a></li>
|
|
|
|
|
|
<li>
|
|
|
<a href="breakptlist.html">Список точек останова</a></li>
|
|
|
|
|
|
<li>
|
|
|
<a href="pgmoutput.html">Окно вывода</a></li>
|
|
|
|
|
|
<li>
|
|
|
<a href="registers.html">Окно содержимого регистров</a></li>
|
|
|
|
|
|
<li>
|
|
|
<a href="memory.html">Окно образа памяти</a></li>
|
|
|
|
|
|
<li>
|
|
|
<a href="threads.html">Окно потоков</a></li>
|
|
|
</ul>
|
|
|
|
|
|
<h2>
|
|
|
<a NAME="Tips"></a>Советы и пр.</h2>
|
|
|
Следующие разделы содержат полезные сведения об использовании KDbg.
|
|
|
<ul>
|
|
|
<li>
|
|
|
<a href="tips.html">Полезные Советы</a></li>
|
|
|
|
|
|
<li>
|
|
|
<a href="howdoi.html">Как я могу...?</a></li>
|
|
|
</ul>
|
|
|
|
|
|
<h2>
|
|
|
<a NAME="KnownProblems"></a>Известные проблемы</h2>
|
|
|
gdb 4.16 имеет проблемы с обработкой классов С++ с виртуальным базовым классом.
|
|
|
(Такие классы обычно встречаются в программах, использующих CORBA.) Он
|
|
|
прерывается по ошибке сегментации, а KDbg сообщает о том, что gdb неожиданно
|
|
|
завершился. К сожалению, с этим ничего нельзя сделать. Вам придется
|
|
|
перезапустить gdb, выбрав пункт меню <i>Файл|Исполняемый модуль</i>, который
|
|
|
перезапустит сессию отладки.
|
|
|
<p>Распознавание типов в KDbg работает только для библиотек, динамически
|
|
|
линкуемых с отлаживаемой программой.
|
|
|
|
|
|
<h2>
|
|
|
<a NAME="Author"></a>Автор</h2>
|
|
|
KDbg разработан <a href="mailto:j6t@kdbg.org">Johannes Sixt</a>
|
|
|
с помощью многих остальных.
|
|
|
<br>Домашняя страница KDbg расположена по адресу
|
|
|
<a href="http://www.kdbg.org/">http://www.kdbg.org/</a>.
|
|
|
</body>
|
|
|
</html>
|