diff options
Diffstat (limited to 'doc/ru')
-rw-r--r-- | doc/ru/argspwdenv.html | 43 | ||||
-rw-r--r-- | doc/ru/breakptlist.html | 68 | ||||
-rw-r--r-- | doc/ru/globaloptions.html | 72 | ||||
-rw-r--r-- | doc/ru/howdoi.html | 78 | ||||
-rw-r--r-- | doc/ru/index.html | 177 | ||||
-rw-r--r-- | doc/ru/localvars.html | 19 | ||||
-rw-r--r-- | doc/ru/memory.html | 26 | ||||
-rw-r--r-- | doc/ru/pgmoutput.html | 43 | ||||
-rw-r--r-- | doc/ru/pgmsettings.html | 73 | ||||
-rw-r--r-- | doc/ru/registers.html | 31 | ||||
-rw-r--r-- | doc/ru/sourcecode.html | 31 | ||||
-rw-r--r-- | doc/ru/stack.html | 23 | ||||
-rw-r--r-- | doc/ru/threads.html | 38 | ||||
-rw-r--r-- | doc/ru/tips.html | 43 | ||||
-rw-r--r-- | doc/ru/types.html | 126 | ||||
-rw-r--r-- | doc/ru/watches.html | 20 |
16 files changed, 911 insertions, 0 deletions
diff --git a/doc/ru/argspwdenv.html b/doc/ru/argspwdenv.html new file mode 100644 index 0000000..9108a91 --- /dev/null +++ b/doc/ru/argspwdenv.html @@ -0,0 +1,43 @@ +<!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"> +<a href="index.html">Содержание</a> +<h1>Указание аргументов программы, рабочего каталога, переменные окружения</h1> +Выберите пункт меню <i>Исполнение|Аргументы</i> для вызова диалогового окна, в +котором вы сможете установить аргументы отлаживаемой программы, ее рабочий +каталог и переменные окружения. +<h2> +<a NAME="PgmArgs"></a>Аргументы программ</h2> +В самой верхней строке ввода укажите аргументы командной строки, которые должны +быть переданы программе. Эти аргументы будут использованы при следующием +запуске программы. +<h2> +<a NAME="WorkingDir"></a>Рабочий каталог</h2> +Ниже расположена строка ввода, в которой вы можете указать рабочий каталог +программы. Программа будет работать в указанном каталоге при следующем запуске. +<p>Рабочий каталог также действует и для gdb! Указанный вами каталог будет +немедленно передан gdb и вступит в силу как только вы нажмете <i>OK</i>. Это +может повлиять на поиск файлов исходных текстов. +<h2> +<a NAME="Environment"></a>Переменные окружения</h2> +В секции переменных окружения введите выражение в виде <tt>VARIABLE=value</tt> +для установки переменной окружения <tt>VARIABLE</tt> в значение <tt>value</tt> +и кликните на кнопку <i>Изменить</i>. Для удаления переменной, выберите ее в +списке и кликните на кнопку <i>Удалить</i>. Для изменения значения переменной, +выберите ее из списка, отредактируйте ее значение в поле редактирования и +кликните по кнопке <i>Изменить</i>. Если вы измените имя переменной и кликните +по кнопке <i>Изменить</i>, то вы добавите новую переменную! Новые переменные +окружения будут использованы вашей программой при следующем запуске. +<p>Если в Linux вы используете библиотеку glibc2, то вам необходимо установить +переменную окружения <tt>LD_BIND_NOW</tt>. Очень важно, чтобы вы установили +значение этой переменной в <tt>1</tt> для всех сессий отладки. Если она не +будет установлена, то gdb не сможет осуществлять пошаговую отладку (в и из) +системных функций, импортируемых из разделяемых библиотек <tt>libc</tt> и +остальных. +</body> +</html> diff --git a/doc/ru/breakptlist.html b/doc/ru/breakptlist.html new file mode 100644 index 0000000..b3007b3 --- /dev/null +++ b/doc/ru/breakptlist.html @@ -0,0 +1,68 @@ +<!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"> +<a href="index.html">Содержание</a> +<h1>Список точек останова</h1> +Список точек останова отображает все установленные точки останова и просмотра и +позволяет манипулировать ими. Он может быть вызван посредством пункта меню +<i>Вид|Точки останова</i>. +<h2>Перечень точек останова</h2> +Для каждой точки останова отображается следующее: +<ul> +<li>местонахождение точки останова,</li> + +<li>счетчик остановок на этой точке,</li> + +<li>счетчик пропусков точки останова, если указан,</li> + +<li>условие останова, если указно.</li> +</ul> +Иконка напротив записи указаывает состояние точки останова: включена - красная +точка, выключена - светло-красная точка, временная точка останова - маленькие +часы или условная точка останова - маленький знак вопроса. +<p>Точки просмотра обозначаются иконкой лупы напротив соответствующей записи. +<h2>Управление точками останова</h2> +<a NAME="StopProg"></a>Необходимо отметить, что точками останова и просмотра +невозможно управлять во время работы программы. Если программа уже запущена, +необходимо, чтобы она остановилась либо попав в точку останова, либо +принудительно посредством вызова пункта меню <i>Исполнение|Прервать</i>. +Это не завершит исполнение программы, а всего лишь остановит ее. Теперь вы +можете управлять точками останва, после чего выберите пункт +<i>Исполнение|Продолжить</i> для продолжения исполнения программы. +<p>Для установки точки останова на определенную строку исходного текста самым +простым способом является установка ее в окне исходных текстов. Если вы не +знаете имени файла и номера строки, где находится интересующая вас функция, вы +просто можете ввести ее имя в строке ввода над списком и кликнуть на кнопку +<i>Добавить Точку Останова</i>. +<p>Вы можете включать и выключать точки останова, выбрав их в списке, а затем +кликнув на кнопки <i>Включить</i> или <i>Выключить</i>. Или просто кликните +средней кнопкой мыши по нужному элементу списка - вы будете включать и +выключать их так же, как и в окне исходных текстов. +<p>Вы можете установить условие срабатывания точки останова или установить +счетчик пропусков этой точки, показывающий количество проходов, при которых не +будет произведен останов. Для этого кликните на кнопку <i>Условия</i> и введите +условие и/или счетчик пропусков. +<h2>Управление точками просмотра</h2> +Точки просмотра похожи на точки останова, за исключением того, что прерывание +происходит только при изменении значения содержимого памяти. Также как и точки +останова, точками просмотра нельзя управлять во время исполнения программы. +Подробнее см. <a href="#StopProg">выше</a>. +<p>Для установки точки просмотра, введите выражение в строку ввода над списком +и кликните на кнопку <i>Добавить Точку Просмотра</i>. Программа остановится при +изменении значения выражения. Необходимо отметить, что точки просмотра, +использующие локальные переменные, могут быть установлены только когда +программа прервана в точке останова (или принудительно посредством вызова +пункта меню <i>Исполнение|Прервать</i>). +<p>Для удаления точки просмотра, выберите ее из списка и кликните на кнопку +<i>Удалить</i>. Если выражение использует локальные переменные, то точка +просмотра будет удалена автоматически при выходе программы из данной области +стека (функции). +<p>Вы также можете установить для точек просмотра условия и счетчик пропусков, +выбрав его из списка и кликнув на кнопку <i>Условия</i>. +</body> +</html> diff --git a/doc/ru/globaloptions.html b/doc/ru/globaloptions.html new file mode 100644 index 0000000..c82a73d --- /dev/null +++ b/doc/ru/globaloptions.html @@ -0,0 +1,72 @@ +<!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"> +<a href="index.html">Солдержание</a> +<h1> +Далоговое окно Глобальных Переменных</h1> +Для установки некоторых глобальных переменных можно использовать +<i>Файл|Глобальные Переменные</i>. Вы можете установить: +<ul> +<li> +команду, с помощью которой вызывается gdb,</li> + +<li> +команду, которая открывает терминал для вывода программы,</li> + +<li> +должен ли KDbg переходить в обыкновенный режим после остановки программы и +через какой промежуток времени он опять перейдет в фоновый режим,</li> + +<li> +размер табуляции.</li> +</ul> + +<h4> +Как вызывать gdb</h4> + +<blockquote>Если вы используете различные версии gdb, нужно указать +их в <i>Как вызывать gdb</i>. По умолчанию используется +форма <tt>gdb --fullname +--nx</tt>. Проверьте, указаны ли данные опции, +если вы изменили исполняемый модуль gdb. Если вы пропустите их, KDbg не +будет работать. Если вы испортили запись, ее можно очистить, переведя +в значения по умолчанию.</blockquote> + +<h4> +Как вызвать эмулятор терминала</h4> + +<blockquote>Если вы хотите испотльзовать различные терминальные программы +для показа вывода программы, укажите их в +<i>Терминалы для вывода программ</i>. Значение по умолчанию – +<tt>xterm -name kdbgio -title %T -e sh -c %C</tt>. +В данной записи, +<tt>%T</tt> заменяется титульной строкой, <tt>%C</tt> +заменяется скриптом командного интерпретатора Борна, который будет циклически +вызываться, пока не произойдет закрытия терминального окна. +(Скрипт использует в цикле <tt>sleep +3600</tt>). Альтернави\ой данных установок может служить +<tt>konsole --name kdbgio --caption %T -e sh -c %C</tt>.</blockquote> + +<h4> +Переход в обычный режим</h4> + +<blockquote>Вы можете указать KDbg окну перевестись в обычный режим, +когда отлаживаемая программа завершится (в точке останова или по сигналу). +Иначе окно KDbg не активируется (по крайней мере в KWM &150; оконном менеджере +KDE). Некоторым пользователям такое поведение может показатся навязчивым, +поэтому по умолчанию данная опция отключена. +</blockquote> + +<blockquote>Если опция включена, KDbg переключится в фоновый режим, если +программа будет продолжена, но только по прошествии заданного временного +промежутка. Это сделано для того, чтобы окно отладчика не переключалось +все время, когда используется пошаговое исполнение программы. +</blockquote> + +</body> +</html> diff --git a/doc/ru/howdoi.html b/doc/ru/howdoi.html new file mode 100644 index 0000000..1549702 --- /dev/null +++ b/doc/ru/howdoi.html @@ -0,0 +1,78 @@ +<!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"> +<a href="index.html">Содержание</a> +<h1> +Как я могу...?</h1> + +<h4> +... установить точки останова?</h4> +Существует несколько способов: +<ul> +<li>Нажатием левой клавиши мыши в окне исходного текста в "активной области", +находящейся слева от строки исходного текста.</li> + +<li>Выбрать строку в окне исходного текста и выбрать опцию +меню <i>Точки останова</i>.</li> + +<li>Вы можете воспользоватся <a href="breakptlist.html">списком точек останова</a>.</li> +</ul> +Если вы не можете установить точки останова, возможно программа работает +в данный момент. Когда программа работает, установка точек останова невозможна. +Остановите программу с помощью <i>Выполнение|Прервать</i>. Если +вы по-прежнему не можете установить точку останова, проверьте, скомпилирована +<i>и собрана</i> ли ваша программа с поддержкой информации для отладки. +<h4>... установить значение глобальной переменной или какого-либо выражения?</h4> +Используйте окно Просмотра. +<h4> +... установить точку просмотра?</h4> +Точки просмотра устанавливаются в <a href="breakptlist.html">списке +точек останова</a>. +<h4> +... использовать дамп памяти?</h4> +Сначала необходимо загрузить исполняемый модуль, используя меню +<i>Файл|Исполняемый модуль</i>, затем указать соответствующий дамп памяти, +используя <i>Файл|Дамп Памяти</i>. +<h4> +... отлаживать программу, содержащую бесконечный цикл?</h4> +Запустите программу и подождите, пока она войдет в бесконечный цикл. +Переключитесь в KDbg и выберите <i>Выполнение|Прервать</i>. +Далее можно использовать отладочные средства. +<h4> +... сделать так, чтобы программа определенное количество раз игнорировала +точку останова во время прохода до того, как начнет прерываться?</h4> +В <a href="breakptlist.html">списке точек останова</a> выберите точку +останова; нажмите <i>Условная</i> и укажите количество раз для пропуска +точки останова в поле <i>Число пропусков</i>. +<h4> +... установить переменную среды для исполнемого модуля?</h4> +Выберите <i>Выполнение|Аргументы</i> и укажите переменные среды в +<a href="argspwdenv.html#Environment">диалоге аргументов программы</a>. +<h4> +... установить рабочий каталог для исполняемого модуля?</h4> +Выберите <i>Выполнение|Аргументы</i> и укажите рабочий каталог в +<a href="argspwdenv.html#WorkingDir">диалоге ургументов программы</a>. +<h4> +... избавиться от терминального окна?</h4> +Выберите <i>Файл|Настройки</i> и перейдите на меню +<a href="pgmsettings.html#output">Вывод</a>. +Выберите <i>Только вывод, простая эмуляция терминала</i> и нажмите +<i>OK</i>. +Теперь перезапустите программу (выберите ее из списка +<i>Файл|Последний исполняемый модуль</i>). Вывод программы теперь перенаправлен +в созданное <a href="pgmoutput.html">окно вывода</a>, а в качестве +стандартного потока ввода используется <tt>/dev/null</tt>. +<p>Вы должны произвести данную операцию для каждой новой отлаживаемой +программы. +<p><b><i>Важно:</i></b>Вы не должны делать этого, если программа +читает данные со стандартного потока ввода (обычно терминала) или +ее вывод требует более интеллектуальной эмуляции терминала (то есть +не только возврата каретки и прогона строки). Окно вывода не +поддерживает ввод и эмуляцию терминала. +</body> +</html> diff --git a/doc/ru/index.html b/doc/ru/index.html new file mode 100644 index 0000000..08e0d88 --- /dev/null +++ b/doc/ru/index.html @@ -0,0 +1,177 @@ +<!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> diff --git a/doc/ru/localvars.html b/doc/ru/localvars.html new file mode 100644 index 0000000..31b9a8b --- /dev/null +++ b/doc/ru/localvars.html @@ -0,0 +1,19 @@ +<!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"> +<a href="index.html">Содержание</a> +<h1>Окно Локальных Переменных</h1> +Окно локальных переменных вызывается выбором пункта меню <i>Вид|Локальные</i>. +Данное окно отображает содержимое локальных переменных, определенных +указанной текущей областью стека (stack frame). +<p>Отображаемый набор локальных переменных определяется областью стека (stack +frame), выбранной в окне стека. +<p>Значения переменных, изменивщихся между остановами программы, отображаются +красным цветом. +</body> +</html> diff --git a/doc/ru/memory.html b/doc/ru/memory.html new file mode 100644 index 0000000..e8ba057 --- /dev/null +++ b/doc/ru/memory.html @@ -0,0 +1,26 @@ +<!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"> +<a href="index.html">Содержание</a> +<h1>Окно образа памяти</h1> +Чтобы отобразить окно образа памяти нужно выбрать <i>Вид|Память</i>. +Оно выводит содержимое памяти программы по любым адресам. +<p>Для просмотра содержимого памяти, введите нужный адрес в поле редактирования. +Адрес не обязательно должен задаваться в шестнадцатеричной форме и может +задаваться выражением. +<p>Вы можете определить формат отображения содержимого памяти с помощью +выбора соответствующих опций из выпадающего меню, которое вызывается +нажатием правой клавиши мыши. +<p>Адресные выражения запоминаются и впоследствии могут быть +вызваны из выпадающего списка. Обратите внимание, что адресные выражения +запоминаются вместе с их форматом. +<p>Если вы не собираетесь исследовать содержимое памяти, рекомендуется +очистить выражение таким образом, чтобы содержимое памяти не выводилось +– это увеличит скорость процесса отладки. +</body> +</html> diff --git a/doc/ru/pgmoutput.html b/doc/ru/pgmoutput.html new file mode 100644 index 0000000..2a17c69 --- /dev/null +++ b/doc/ru/pgmoutput.html @@ -0,0 +1,43 @@ +<!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"> +<a href="index.html">Содержание</a> +<h1>Окно Вывода Программы</h1> +Окно вывода программы можно вызвать, выбрав пункт меню <i>Вид|Вывод</i>. В это +окно выводятся стандартные потоки вывода и диагностики отлаживаемой программы. +<p>Оно не позволяет вводить какие-либо данные в программу и реализует лишь +минимальную эмуляцию терминала: <tt>\n</tt> (перевод строки) преобразуется в +комбинацию начало строки-перевод строки, а <tt>\r</tt> (начало строки) +игнорируется. Этих возможностей обычно предостаточно для отладки GUI программ, +которые выводят отладочные сообщение в стандартные потоки вывода или +диагностики. +<p>Когда программа отлаживается первый раз, окно вывода программы не +<i>не</i>используется. Ведь KDbg не знает, достаточно ли программе столь +ограниченных возможностей или же она ожидает ввода с терминала. Поэтому по +умолчанию используется штатный эмулятор терминала. Для перенаправления вывода +программы в окно вывода необходимо проделать следующие шаги: +<ol> +<li> +Вызвать диалоговое окно <a href="pgmsettings.html">Настройки</a> посредством +пункта меню <i>Файл|Настройки</i>.</li> + +<li>Выбрать закладку <i>Вывод</i>.</li> + +<li>Выбрать <i>Только вывод, простой эмулятор терминал</i> и кликнуть на +кнопку <i>OK</i>.</li> + +<li>Перезагрузить программу из списка <i>Файл|Последние Исполняемые Модули</i>.</li> +</ol> +Для очистки содержимого окна выберите пункт <i>Очистить</i> в всплывающем меню, +вызываемом нажатием правой кнопки мыши в этом окне. +<p>Если последняя строка окна заполнена текстом, то окно прокручивается +автоматически таким образом, что последняя строка всегда остается видимой при +поступлении новых сообщений. Если вы прокрутите окно, то отображаемая позиция +не изменится. +</body> +</html> diff --git a/doc/ru/pgmsettings.html b/doc/ru/pgmsettings.html new file mode 100644 index 0000000..ca14b4b --- /dev/null +++ b/doc/ru/pgmsettings.html @@ -0,0 +1,73 @@ +<!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"> +<a href="index.html">Содержание</a> +<h1>Диалог Настройки Программ</h1> +В этом диалоге можно указать настройки конкретной программы. Для его вызова +выберите пункт меню <i>Файл|Настройки</i>. Данные настройки будут применены +только к текущей отлаживаемой программе и будут сохранены между сессиями ее +отладки. +<blockquote><b><i>Важное замечание:</i></b> Настройки будут применены только +при следующей загрузке исполняемого модуля в KDbg. Это означает, что после +нажатия на <i>OK</i> вы должны перезагрузить исполняемый модуль с помощью +пункта меню <i>Файл|Исполняемые модули</i>!!</blockquote> + +<ul> +<li> +<a href="#driver">Отладчик</a></li> + +<li> +<a href="#output">Вывод</a></li> +</ul> + +<h2> +<a NAME="driver"></a>Отладчик</h2> +В этом разделе вы можете указать отладчик, которым будете отлаживать программу. +<h4>Как вызвать GDB</h4> + +<blockquote>Введите команду для вызова gdb. Оставьте это поле пустым для вызова +gdb по умолчанию, указанного в +<a href="globaloptions.html">глобальных опциях</a>. Если вы занимаетесь +кросс-компиляцией и удаленной отладкой, то вы наверное захотите использовать +другой gdb, более подходящий для конкретной платформы. По умолчанию вызывается +<tt>gdb --fullname --nx</tt>. Не забудьте указать данные опции при изменении +используемого отладчика. Если вы их не укажите, KDbg не будет работать. +</blockquote> + +<h2> +<a NAME="output"></a>Вывод</h2> +В этом разделе вы можете указать степень эмуляции терминала, в которой будет +работать программа. +<h4>Нет ввода и вывод</h4> + +<blockquote>Отметьте эту опцию, если ваша программа не получает входных данных +с терминал и вы не хотите видеть то, что она выводит в стандартные потоки +вывода и диагностики. Все стандартные потоки (<tt>stdin</tt>, <tt>stdout</tt> и +<tt>stderr</tt>) перенаправляются в <tt>/dev/null</tt>.</blockquote> + +<h4>Только вывод, простая эмуляция терминала</h4> + +<blockquote>Отметьте эту опцию, если ваша программа не получает входных данных +с терминала (<tt>stdin</tt> будет перенаправлен в <tt>/dev/null</tt>), а вывод +(<tt>stdout</tt> и <tt>stderr</tt>) не требует сложной эмуляции терминала. +Вывод будет отображаться в <i>окне выовда</i>. + +<br><i>Важно:</i> Встроенный эмулятор терминала интерпретирует только символ +новой строки <tt>\n</tt> (ASCII 10) в перевод строки. Он <i>не</i> обрабатывает +символ перевода каретки <tt>\r</tt> (ASCII 13). Этого вполне достаточно для +отображения простых отладочных сообщений, которые обычно используются +разработчиками программ, использующих графический интерфейс.</blockquote> + +<h4>Полная эмуляция терминала</h4> + +<blockquote>Отметьте эту опцию, если ваша программа получает данные из +<tt>stdin</tt>, или вывод в <tt>stdout</tt> or <tt>stderr</tt> требует полной +эмуляции терминала. В этом случае будет использован эмулятор терминала, +указанный в <a href="globaloptions.html">глобальных опциях</a>.</blockquote> +</body> +</html> diff --git a/doc/ru/registers.html b/doc/ru/registers.html new file mode 100644 index 0000000..eb5c216 --- /dev/null +++ b/doc/ru/registers.html @@ -0,0 +1,31 @@ +<!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"> +<a href="index.html">Содержание</a> +<h1>Окно Содержимого Регистров</h1> +Всякий раз, когда происходит останов программы, +KDbg выводит содержимое регистров ЦПУ в соответсвующем окне. Для того, чтобы +отобразить данное окно, выберите <i>Вид|Регистры</i>. +<p>Окно содержит 3 колонки: +<ol> +<li>Колонка <i>Регистр</i> выводит имя регистра.</li> + +<li>Колонка <i>Значение</i> выводит содержимое регистров в более или менее +необработанном формате. Необработанный формат обычно выводит шестнадцатеричное +значение, даже для содержимого регистров с плавающей точкой.</li> + +<li>Колонка <i>Декодированное значение</i> выводит содержимое регистров +в декодированной форме. Для арифметических регистров это +обычно знаковое десятичное значение, для регистров с плавающей точкой +– число с плавающей точкой, регистры флагов декодируются в имена +флагов.</li> +</ol> +С помощью правой клавиши мыши можно вызвать меню, которое позволяет +установить формат значений во второй колонке. +</body> +</html> diff --git a/doc/ru/sourcecode.html b/doc/ru/sourcecode.html new file mode 100644 index 0000000..fba5f3b --- /dev/null +++ b/doc/ru/sourcecode.html @@ -0,0 +1,31 @@ +<!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"> +<a href="index.html">Содержание</a> +<h1>Окно Исходного Текста</h1> +Данное окно является главным и всегда отображается. +<p>Окно исходного текста содержит исходный текст программы. Слева от +каждой строки текста находится "активная область". Она содержит +указатель на строку исходного текста, которая выполняется в текущий момент +времени, а также указывает те строки исходного текста, которые содержат +точки останова. +<p>Новые точки останова устанавливаются нажатием левой клавиши мыши в +"активной области". Существующая точка останова может быть активирована +или дезактивирована с помощью средней клавиши мыши. +<p>Может быть нажат знак плюса '+' между "активной областью" и строкой +исходного текста. Это приведет к выводу ассемблерного кода для данной +строки. Чтобы скрыть ассемблерный код, необходимо +нажать клавишу '-'. +<p>Обычно окна исходного текста открываются автоматически. Чтобы +открыть файл с исходным текстом вручную, нужно нажать правую +кнопку мыши и выбрать <i>Открыть исходный текст</i> или +выбрать <i>Файл|Открыть исходный текст</i>. +<p>Для переключения между несколькими файлами с исходными текстами, +выберите нужный файл в меню <i>Окно</i>. +</body> +</html> diff --git a/doc/ru/stack.html b/doc/ru/stack.html new file mode 100644 index 0000000..082ba9b --- /dev/null +++ b/doc/ru/stack.html @@ -0,0 +1,23 @@ +<!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"> +<a href="index.html">Содержание</a> +<h1>Окно Стека</h1> +Окно стека вызывается выбором пункта меню <i>Вид|Стек</i>. Окно стека содержит +списки областей стека (stack frames), например, функции, которые были вызваны, +но еще не завершились. +<p>Самая внутренняя (вложенная) область (место текущего исполнения программы) +находится в самом верху списка. +<p>Для переключения на другую область стека, просто выберите эту область +мышкой. <a href="sourcecode.html">Окно исходных текстов</a> отображает строки +исходных текстов, которые исполняются программой в текущий момент, а +<a href="localvars.html">окно локальных переменных</a> и +<a href="watches.html">окно отслеживаемых выражений</a> изменяются, отображая +локальные переменные выбранной области стека. +</body> +</html> diff --git a/doc/ru/threads.html b/doc/ru/threads.html new file mode 100644 index 0000000..674c309 --- /dev/null +++ b/doc/ru/threads.html @@ -0,0 +1,38 @@ +<!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"> +<a href="index.html">Содержание</a> +<h1>Окно Потоков</h1> +Окно потоков можно вывести, выбрав пункт меню <i>Вид|Потоки</i>. В окне потоков +отображается список активных потоков программы. +<p><b><i>Замечание:</i></b> Отладка многопоточных программ должна +поддерживаться используемой версией gdb - это не является функцией KDbg. Для +Linux-систем лучше использовать gdb5. +<p>Содержимое окна потоков обновляется при каждой остановке программы +отладчиком. (Т.е. в окне <i>не</i> отображается состояние потоков во время +работы программы.) +<p>Первая колонка отображает идентификатор потока, вторая указывает на текущее +место исполнения данного потока. +<p>Маркер напротив одной из строк указывает на текущий <i>активный</i> поток: +<ul> +<li> +<a href="stack.html">Окно стека</a> отображает стек вызовов активного потока. +</li> + +<li><a href="localvars.html">Окно локальных переменных</a> отображает локальные +переменные активного потока.</li> + +<li><a href="watches.html">Окно просмотра</a> использует локальные переменные +потока для проверки выражений.</li> +</ul> +Если кликнуть на другой поток в списке, то он станет активным и соответственно +будет изменено содержимое других окон. В частности, +<a href="sourcecode.html">окно исходных кодов</a> отобразит место, где текущий +поток был остановлен. +</body> +</html> diff --git a/doc/ru/tips.html b/doc/ru/tips.html new file mode 100644 index 0000000..7739496 --- /dev/null +++ b/doc/ru/tips.html @@ -0,0 +1,43 @@ +<!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"> +<a href="index.html">Содержание</a> +<h1>Полезные Советы</h1> + +<ul> +<li>Всегда устанавливайте переменную окружения <tt>LD_BIND_NOW=1</tt> в +системах, использующих библиотеку glibc2. + +Установка переменных окружения описана +<a href="argspwdenv.html#Environment">здесь</a>.</li> + +<li>Вы можете использовать точки останова, как закладки: просто установите +точку останова и выключите ее. Позже вы сможете возвратиться к этой точке, +кликнув на нее два раза в списке точек останова (или просто выбрав ее и кликнув +на кнопку <i>Просмотреть Исходный Код</i>). Т.к. точки останова являются +постоянными (т.е. KDbg запоминает их расположение и восстанавливает в следующей +сессии), то при вызове вашей программы на отладку в следующий раз все точки +останова будут на месте. +</li> + +<li>Вы можете изменять значения переменных программы: в окне просмотра +переменных (внизу справа) введите присвоение <tt>var.member=17</tt> и кликните +по кнопке <i>Добавить</i>. Это приведет к немедленному изменению значения +переменной. Теперь вам необходимо удалить это выражение из списка (выбрав +его и кликнув на кнопку <i>Удалить</i>). Это необходимо потому, что просмотр +выражений осуществляется при каждом останове программы и этой переменной будет +присваиваться тоже значение снова и снова!</li> + +<li>Вы можете выводить значение переменных в окно просмотра в разных форматах, +используя модификаторы gdb перед указанием выводимой переменной. Например, +<tt>/x var.member</tt> выведет значение <tt>var.member</tt> в шеснадцатеричном +виде.</li> +</ul> + +</body> +</html> diff --git a/doc/ru/types.html b/doc/ru/types.html new file mode 100644 index 0000000..6cb8453 --- /dev/null +++ b/doc/ru/types.html @@ -0,0 +1,126 @@ +<!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"> +<a href="index.html">Содержание</a> +<h1>Таблица Типов KDbg</h1> +KDbg может отображать содержимое отдельно взятых членов структурированных типов +данных, таким образом отсутствует необходимость в раскрытии переменных в +<a href="localvars.html">окне локальных переменных</a> или в +<a href="watches.html">окне отслеживаемых выражений</a>. Информация о том, +переменная какого члена отображается, хранится в <i>таблицах типов</i>. Обычно +существует одна таблица на разделяемую библиотеку. +<p>Таблицы типов KDbg расположены в каталоге +<tt>$TDEDIR/share/apps/kdbg/types</tt>. Имена файло таблиц оканчиваются на +<tt>.kdbgtt</tt>. Например, таблица типов для <tt>libtqt.so</tt> называется +<tt>qt.kdbgtt</tt>. +<p>Файлы таблиц типов соответствуют стандартному синтаксису файлов конфигурации +KDE. Файл содержит следующие группы: +<ul> +<li> +Группу <tt>[Type Table]</tt>, в которой перечислены типы и информация о том, +как отладчик может определить, слинкована ли программа с этой библиотекой.</li> + +<li>Группу на каждый прописанный тип, в которой содержится информация о том, +как KDbg должен отображать данный тип.</li> +</ul> +Для определения таблиц типов, применимых к отлаживаемой программе, KDbg +запрашивает список разделяемых библиотек, с которыми слинкована программа. +Затем он осуществляет поиск имен этих библиотек в таблицах типов в элементах +<tt>ShlibRE</tt>. Используются те таблицы, в которых были найдены +соответствующие имена библиотек. Если тип появляется в нескольких таблицах, то +неопределено, какое же из описаний будет выбрано. +<h2>Группа <tt>[Type Table]</tt></h2> +Эта группа содержит следующие элементы: +<ul> +<li> +<tt>Types1</tt>, <tt>Types2</tt>, и тд. Эти элементы являются именами типов. +Каждый из них представляет собой разделенный запятыми список имен типов. В +каждом элементе может быть перечислено любое количество типов. (Имена типов +можно разбить на несколько строк, чтобы они строки не получались слишком +длинными.) В этих строках недопустимы символы пробела. Элементы должны +нумероваться последовательно (KDbg прекращает чтение на первом же пропуске), +однако элементы могут быть пусты (т.е. вообще не содержать типов). Иногда +порядок перечисления имен имеет значение (см. пример с <tt>Alias</tt> ниже). +</li> + +<li> +<tt>ShlibRE</tt>. KDbg использует этот элемент для определения, использовать +ли данную таблицу к текущей отлаживаемой программе. Для этого KDbg определяет +разделяемые библиотеки, используемые программой. Если хотя бы одна из них +совпадает со значением этого элемента, таблица используется. Используемые +регулярные выражения совпадают с регулярными выражениями TQt (метасимволы +<tt>.*?[]^$\</tt> распознаются обычным образом, однако отсутсвует возможность +группировать символы.)</li> + +<li> +<tt>LibDisplayName</tt>. Этот элемент используется в списках, в которых +доступные таблицы типов перечислены для указания данной таблицы типов.</li> + +<br><font size=-1>На данный момент это не используется.</font></ul> + +<h2>Группа типа</h2> +На каждый заявленый тип должна быть заведена группа, названная именем типа. +<font size=-1>На данный момент шаблоны С++ не поддерживаются.</font> +Каждая группа содержит следующие элементы: +<ul> +<li> +<tt>Display</tt> указывает, как KDbg должен отображать значение этого типа. +Строка может содержать от 1 до 5 символов '<tt>%</tt>'. Они заменяются на +результаты выражений, описанных в элементах <tt>Expr</tt><i>x</i>.</li> + +<li>Один или более <tt>Expr1</tt>, <tt>Expr2</tt>, и тд. Каждый из них должен +содержать <b>только одну</b> последовательность <tt>%s</tt>, которая будет +заменена выражением, чье значение необходимо получить. Такие выражения +передаются gdb, а результат заносится на место соответствующего символа +процента в элементе <tt>Display</tt>.</li> + +<li> +<tt>Alias</tt> указывает на тип-псевдоним. Если присутствует данная запись, то +с данным типом обходятся также, как с тем, на который он указывает. Этот +тип-псевдоним дожен быть описан перд ссылающимся на него типом в элементах +<tt>Types</tt><i>x</i> группы <tt>[Type Table]</tt>.</li> +</ul> +<font size=-1>На данный момент количество выражений для каждого типа ограничено +пятью. Это может быть с легкостью изменено, но я не рекомендую вообще +приближаться к данному рубежу - это только затормозить процесс отладки.</font> +<p>KDbg распознает специальное расширение, которое используется для вывода +строк TQt 2.0 в unicode: Если перед <tt>Expr</tt><i>x</i> стоит +<tt>/TQString::Data</tt>, подразумевается, что результат операции является +указателем на <tt>TQString::Data</tt>. Выводимое значение является строкой в +unicode, представленное <tt>TQString::Data</tt> (которое может быть +<tt>TQString::null</tt>, если это пустая строка TQt, или <tt>(null)</tt>, если +<tt>unicode</tt> член структуры является нулевым указателем). Для примера см. +<tt>qt2.kdbgtt</tt>. + +<p>Совет: Совсем необязательно описывать наследуемые типы, если они должны +обрабатываться также как и базовый класс - KDbg может определить наследование +и использовать описание типа первого (слева) базового класса. Вы можете +использовать элемент <tt>Alias</tt> для быстрого указания класса при +множественном наследовании, отличного от первого слева. +<h2>Пример</h2> +Этот пример показывает, как <tt>TQString</tt> и <tt>TQObject</tt> описаны в +<tt>qt.kdbgtt</tt>. Дополнительно определен <tt>TQTableView</tt>, ссылающийся +на <tt>TQObject</tt>. Этот пример применим к TQt 1.x, который расположен в +разделяемых библиотеках, имена которых оканчиваются как <tt>libtqt.so.1</tt>. +<pre>[Type Table] +Types1=TQString +Types2=TQObject,TQTableView +LibDisplayName=libtqt 1.x +ShlibRE=libtqt\.so\.1$ +[TQString] +Display={ % } +Expr1=(%s).shd->data +[TQObject] +Display={ name=% #chld=% } +Expr1=(%s).objname +Expr2=(%s).childObjects->numNodes +[TQTableView] +Alias=TQObject</pre> +Замечание: гораздо безопаснее заключать <tt>%s</tt> в скобки. +</body> +</html> diff --git a/doc/ru/watches.html b/doc/ru/watches.html new file mode 100644 index 0000000..0953b7c --- /dev/null +++ b/doc/ru/watches.html @@ -0,0 +1,20 @@ +<!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"> +<a href="index.html">Содержание</a> +<h1>Окно Отслеживаемых Выражений</h1> +Окно отслеживаемых выражений вызывается выбором пункта меню +<i>Вид|Отслеживаемые Выражения</i>. Оно отображает произвольные выражения. +<p>Для добавления выражения, введите его в поле редактирования и нажмите Enter +или кликните на кнопку <i>Добавить</i>. Для удаления выражения, выберите его +(выбирайте корень выражения?) и кликните на кнопку <i>Del</i>. +<p>Отслеживаемые выражения сохраняются между сессиями отладки. Поэтому +рекомендуется удалять выражения, которыми вы уже не пользуетесь, т.к. это +повысит скорость отладки. +</body> +</html> |