Отладка программы – процесс исправления
ошибок в коде программы. Ошибки могут быть синтаксическими и логическими.
Синтаксические ошибки выявляются на этапе компиляции программы. Сообщения об
ошибках компилятор выводит в окне. Исправление синтаксических ошибок необходимо
начинать с первой ошибки, так как она может вызвать серию связанных с ней ошибок.
Для выявления логических ошибок требуется наблюдать за изменением переменных,
поведением функций, объектов, процессов и линий потока управления. Это можно
сделать с помощью встроенного отладчика IDE C++Builder
5(6). Отладчик IDE обладает широкими возможностями вплоть до отладки на уровне
машинного кода.
При отладке вам понадобится обращаться в
основном к трем меню: это каскадное меню View>Debug Windows, меню
Run и контекстное меню редактора кода. Пункты этих меню приведены в таблицах
6.1 - 5.3. Таблица 5.1. Пункты меню Viev |
Debug Windows
Пункт
|
Клавиша
|
Описание
|
Breakpoints
|
Ctrl+Alt+B
|
Открывает окно списка контрольных точек, показывающее активные контрольные
точки и их свойства.
|
Call Stack
|
Ctrl+Alt+S
|
Открывает окно стека вызовов. Стек показывает, какие и в каком порядке
вызывались функции, прежде чем управление достигло текущей точки программы.
|
Watches
|
Ctrl+Alt+W
|
Открывает окно наблюдения за переменными. Окно отображает список
наблюдаемых переменных с их текущими значениями.
|
Local Variables
|
Ctrl+Alt+L
|
Открывает окно локальных переменных. В нем отображаются значения всех
локальных переменных текущей функции.
|
Threads
|
Ctrl+Alt+T
|
Окно активных процессов и линий потока управления (threads).
|
Modules
|
Ctrl+Alt+M
|
Окно загруженных модулей – исполняемых файлов, динамических библиотек и
пакетов запущенного проекта.
|
Event Log
|
Ctrl+Alt+E
|
Отображает протокол событий, происходящих при запуске проекта; какие
события будут регистрироваться, можно задать на странице Event Log диалога
Debugger Options.
|
CPU
|
Ctrl+Alt+C
|
Открывает окно состояния процессора. Отображает, в частности,
компилированный код программы и содержимое регистров.
|
FPU
|
Ctrl+Alt+F
|
Открывает окно состояния FPU, отражающее содержимое его регистров и
флагов.
|
Таблица 5.2. Пункты меню Run
Пункт
|
Клавиша
|
Описание
|
Run
|
F9
|
Запускает программу, при необходимости производя перед этим её сборку
(Make).
|
Attach to Process...
|
|
Прикрепляет отладчик к уже выполняющемуся в данный момент процессу.
|
Parameters...
|
|
Позволяет ввести аргументы командной строки или указать приложение,
которое является "хозяином” отлаживаемой DLL.
|
Step Over
|
F8
|
Исполняет текущую строку исходного кода и переходит к следующей строке.
|
Trace Into
|
F7
|
Исполняет текущую строку исходного кода; если строка содержит вызов
функции, переходит к трассировке последней.
|
Trace to Next Source Line
|
Shift+F7
|
Исполняет программу до следующей строки исходного кода. Например, если
программа вызывает функцию API, требующую возвратно-вызываемой процедуры,
отладчик остановит выполнение на входе в эту процедуру.
|
Run to Cursor
|
F4
|
Исполняет программу до строки исходного кода, в которой установлен курсор
редактора.
|
Run Until Return
|
Shift+F8
|
Исполняет программу до возврата из текущей функции
|
Show Execution Point
|
|
Устанавливает курсор редактора кода на строку, в которой приостановлена
программа.
|
Program Pause
|
|
Приостанавливает выполнение программы, как только управление попадает в
наличный исходный код.
|
Program Reset
|
Ctrl+F2
|
Закрывает программу.
|
Inspect...
|
|
Открывает диалог Inspect, в котором можно ввести имя инспектируемого
объекта.
|
Evaluate/Modify...
|
Ctrl+F7
|
Открывает диалог Evaluate/Modify
|
Add Watch...
|
Ctrl+F5
|
Открывает диалог Watch Properties
|
Add Breakpoint
|
|
Каскадное меню, позволяющее устанавливать контрольные точки различного
вида (в исходном коде, на адресе, на данных, точки загрузки модуля).
|
Для любой из вышеперечисленных команд
меню можно поместить соответствующую кнопку на инструментальную панель.
Откройте правой кнопкой мыши контекстное меню инструментальной панели и выберите
Customize...; на странице Commands открывшегося диалога выберите нужную кнопку
и перетащите ее на инструментальную панель. Чтобы убрать с панели какую-нибудь
кнопку, просто вытащите ее мышью за пределы главного окна C++Builder. По
умолчанию на панели инструментов размещены кнопки Run, Pause, Trace Into и Step
Over.
Следующая таблица показывает пункты
контекстного меню редактора в режиме приостановленной программы. В основном они
дублируют перечисленные пункты главного меню, но в ряде случаев более удобны. Таблица 5.3. Отладочные пункты
контекстного меню редактора
Пункт
|
Клавиша
|
Описание
|
Toggle Breakpoint
|
F5
|
Переключает (устанавливает или сбрасывает) контрольную точку в строке, где
находится курсор редактора.
|
Run to Cursor
|
F4
|
То же, что и в меню Run.
|
Goto Address...
|
|
Позволяет указать адрес области памяти, которая будет отображаться в
панели дизассемблера окна CPU.
|
Inspect...
|
Alt+F5
|
Открывает окно инспекции объекта, на имени которого находится курсор.
|
Evaluate/Modify...
|
|
То же, что и в меню Run.
|
Add Watch at Cursor
|
Ctrl+F5
|
Вносит в список наблюдения переменную, на имени которой находится курсор.
|
View CPU
|
|
То же, что Viev меню.| Debug Windows| CPU в главном
|
|