Отладка программ
Сейчас вы познакомитесь с основными приемами отладки кода с помощью встроенного отладчика IDE. Это мощный инструмент, обладающий широкими возможностями вплоть до отладки на уровне машинного кода.
Программисты часто пренебрегают имеющимися в их распоряжении отладчиками и не используют их в полной мере, полагаясь на собственную сообразительность и пользуясь кустарными приемами отладки. Не берите с них пример, тем более что работать со встроенным отладчиком C++Builder очень просто, как вы сами скоро убедитесь.
Прежде чем компилировать программу, нужно убедиться, что сделаны все необходимые установки проекта (диалог Project Options).
Открыв диалог Project Options на странице Compiler, нажмите кнопку Full debug. Будут установлены все параметры компилятора и компоновщика, необходимые для отладки.
Полезно посмотреть на различные меню, имеющие отношение к отладке.
На ознакомительном этапе обратим внимание только на пункты, выделенные красным цветом
Таблица 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 | Каскадное меню, позволяющее устанавливать контрольные точки различного вида (в исходном коде, на адресе, на данных, точки загрузки модуля). |
Ну а теперь мы поговорим о том, чем управляют все эти меню и какие вообще инструментальные средства отладки имеются в распоряжении программиста.