Отладчик интегрированной среды
Для того, чтобы отладка программы в IDE стала возможной, необходимо выполнить компиляцию и компоновку программы с включенной опцией Source Debugging, расположенной в меню опций отладчика (Маin Menu-Options-Debugger).
Встроенный отладчик IDE позволяет:
1) выполнить программу по шагам, строка исходного текста за строкой;
2) выполнить программу до заданной строки, называемой далее точкой останова (Breakpoint);
3) проследить изменение заданных переменных программы и при необходимости установить для них новые значения.
Команда Тгасе into из меню Run ("горячая" клавиша F7) запускает программу на отладку. Интегрированная среда высвечивает строку программы, содержащую точку входа main(). После зтого нажатием клавиши F7 вызывают выполнение кода, соответствующего одной строке текста программы. Если в строке записана ссылка на функцию, начинается трассировка по тексту функции. (Библиотечные функции выполняются без трассировки за одно нажатие клавиши F7). При необходимости выполнения строки Си-текста за один шаг используется клавиша F8 (команда меню Run Step over).
Для ускорения процесса отладки используется команда Go to cursor меню Run ("горячая" клавиша F4). Программа выполняется до строки, в которой в данный момент располагается текстовый курсор. Например, если программа попадает в цикл и пользователь не хочет выполнять по шагам все eгo итерации, необходимо переместить курсор на следующую после тела цикла строку текста и нажать клавишу F4. Точно так же можно пропуститъ ту часть отлаживаемой программы, детальный анализ которой не требуется.
Другая возможность ускоренноro выполнения отлаживаемой про:граммы - использование точек останова. Включение точки выполняет команда Toggle breakpoiпt меню Debug ("roрячая" клавиша Ctrl-F8). Точка помещается в той строке программы, где располагается текстовый, курсор. Повторное выполнение комaнды Toggle breakpoint удаляет точку останова. Строка Си-текста с точкой останова высвечивается на экране другим цветом.
Когда исполняющаяся программа дocтигaeт точки останова, IDE проверяет условие, которое может быть задано для нее. Если условие не задано, эта точка считается точкой безусловного останова. Здесь выполнение программы всегда останавливается и может бытъ продалжено либо по шагам (клавиша F7), либо до курсора (клавиша F4), либо до следующей точки останова (клавиша Ctrl-F9).
Если же с точкой останова связано какое-то условие, она называется условной. Выполнение программы здесь останавливается только, если в этот момент вычисленное условие истинно. Задание условий выполняется через окно диaлога, oткpываемое при выполнении команды Breakpoiпts... меню Debug.
Нажатие кнопхu yправления Delete удаляет точку останова из текста программы. Поле Pass указывает число прохождений точки до останова.
Если необходимо задать или скорректировать условие останова, используется окно диалога, открываемое при нажати" кнопки управления Edit.
Исключительно полезное свойство встроенного отладчика IDE - возможность наблюдения за изменением значений переменных в ходе выполнения прогpaммы. Интегрированная среда использует для этого специальное окно с именем Watch. Оно появляется сразу же после нажатия клавиши F7. Задание имен переменных или. выражений, называемых далее точками нaблюдения, выполняется коман.дой Watches меню Debug. Ее выполнение открывает подменю, содержащее команды управления точками наблюдения: Add watch..., Delete watch, Edit watch..., Remove all watches.
Команда Add Watch ("горячая" клавиша Ctrl- F7 в случае, когда активно текстовое окно) добавляет в окно Watch новую точку наблюдения. При выполнении команды открывается окно диалога, с использованием которого задается любое допуcтимое выражение языка Си, в том числе имя переменной, и, если необходимо, через запятую cnецифицируется формат представления переменной. По умолчанию выражением является слово в текущей позиции курсора активного окна редактирования, а формат выбирается по типу переменной.
После того, как завершен ввод выражения, нажимается клавиша ENTER и в окне Watch появляется новая cтрокa, покaзывающая текущее значение вычисленного выражения. В табл. 4 приведены спецификаторы формата, распознаваемые IDE в oтладочных выражениях.
Табл.4. Спецификaтoры формата для oтладoчных выражений
Символ формата | Производимое действие |
с | Oтo6ражает значение как ASCII-символ |
d | Отображает целое число в десятичной системе счисления |
f[n] | Отображает число с плавающей точкой; n - нео6язательный спецификатор числа знаков после десятичной точки |
h или x | Отображает целое число в шестнадцатеричной системе счисления |
m | Отображает коды байтов (дамп) области памяти, выделенной под переменную |
p | Oro6ражает указатель в форме segment:offset. для nеar-указателей зеgшent содержит имя сегментного регистра (D5, Е5, CS, 55) |
r | Отображает значение каждоro паля структуры или объединения |
s | Отображает значение как ASCIIZ-строку |
Окно Watch, когда оно активно, позволяет выполнить добавление, удаление и редактирование точки наблюдения без использования команды подменю Watch. Высвеченная в окне Watch строка соответствует текущей точке наблюдения. Ее редактирование осуществляется простым нажатием клавиши ENTER. В окно диалога будет копироваться текущее выражение. Для удаления текущей точки наблюдения нажимается клавиша Del. Добавление новой точки наблюдения происходит при нажатии клавиши Ins. Команда Remove all watches подменю Debug-Watches полностью очищает окно Watch.
Кратко отметим другие возможности встроенного отладчика IDE. Прежде всего это возможность просмотра и изменения значений переменных в процессе . отладки программы. Команда Evaluate/modify... меню Debug ("горячая" клавиша Ctrl-F4) открывает окно диалога, содержащее три поля: поле Expression для задания выражения, поле Result, где отображается результат выполнения выражения, и поле New Value для задания, если это возможно, нового значения выражения.
В поле ввода Expression задается любое выражение языка Си, включая константы, имена переменных и символы формата. В этом поле помещается имя переменной, на которую указывал курсор в текстовом окне в момент нажатия клавииш Ctrl-F4, или выражение текущей точки наблюдения, если активным является окно Watch. Когда завершен ввод в поле Expression, нажатие клавиши ENTER заставляет вычислить выражение. Результат отображается в поле Result. Команда Evaluate/modify... часто используется программистами вместо калькулятора для вычислений. Например, задав выражение (23567+0xlabc)/0xf4,x, можно получить результат сложения и деления констант в шестнадцатеричной системе счисления. Активизировав поле ввода New Value в окне диалога, туда можно записать новое значение для переменной. Для того чтобы оно было воспринято “нажимается” кнопка Modify или клавиша ENTER. Новое значение переменной немедленно отображается в окне Watch.
Команда Inspect меню Debug позволяет исследовать и модифицировать ячейки памяти, отведенные под переменные. Окно Inspect может быть открыто нажатием "горячей" клавишиАlt-F4.
В ходе отладки программы можно сразу вносить изменения в ее текст. После каждого изменения отладчик запрашивает подтверждение на продолжение сеанса отладки или предлагает повторную компиляцию программы. Если необходимо начать выполнение программы сначала, не дожидаясь ее завершения, используется клавиша Ctrl-F2.
Вопросы для самоконтроля
- Перечислите компоненты Турбо С!
- Как выполнить переключение окон при работе с Турбо С?
- Для чего используется команда Save all?
- Как выполняется смена текущего директория в Турбо С?
- Для каких целей используется команда Directories меню Options?
- Как выполнить выход из зацикленной программы?
- Для чего применяются горячие клавиши F7 и F8 в процессе выполнения программы в Турбо С?
Дата добавления: 2016-05-26; просмотров: 1660;