КРАТКИЕ ТЕОРЕТИЧЕСКИЕ СВЕДЕНИЯ
Отладка программы – процесс исправления ошибок в коде программы. Ошибки могут быть синтаксическими и логическими. Синтаксические ошибки выявляются на этапе компиляции программы. Сообщения об ошибках компилятор выводит в окне. Исправление синтаксических ошибок необходимо начинать с первой ошибки, так как она может вызвать серию связанных с ней ошибок. Для выявления логических ошибок требуется наблюдать за изменением переменных, поведением функций, объектов, процессов и линий потока управления. Это можно сделать с помощью встроенного отладчика IDE C++Builder 5. Отладчик 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 в главном |
|
|
Ну а теперь мы поговорим о том, чем управляют все эти меню и какие вообще инструментальные средства отладки имеются в распоряжении программиста.
Элементы отладки
Наиболее общими приемами отладки являются установка контрольных точек, наблюдение за переменными и пошаговое исполнение кода.
Контрольные точки
Программа, запущенная под управлением отладчика IDE, исполняется как обычно, т. е. с полной скоростью, пока не будет встречена контрольная точка (breakpoint). Тогда отладчик приостанавливает программу, и вы можете исследовать и изменять содержимое переменных, исполнять операторы в пошаговом режиме и т. д.
Контрольные точки в C++Builder 5 могут быть четырех видов: в исходном коде, на адресе, на данных и точки загрузки модуля.
Дата добавления: 2018-11-24; просмотров: 259; Мы поможем в написании вашей работы! |
Мы поможем в написании ваших работ!