
- •1. Теоретические сведения
- •2. Встроенный отладчик системы Delphi
- •Команды, соответствующие командам отладчика
- •3. Использование команд отладчика
- •4. Методика отладки программы
- •5. Некоторые замечания
- •6. Лабораторное задание
- •7. Порядок выполнения лабораторной работы
- •8. Требования к отчету
- •9. Контрольные вопросы
- •10. Ваpианты заданий
3. Использование команд отладчика
При отладке программы, содержащей подпрограммы (т.е. процедуры или функции), нажатие клавиши F8 в месте вызова подпрограммы приведет к выполнению этой подпрограммы как одного оператора (см. табл. 3). Для трассировки внутри подпрограмм используется клавиша F7, которая действует в точности так же, как и F8, за исключением того, что при достижении строки, содержащей вызов подпрограммы будет выполняться трассировка этой подпрограммы.
Точку прерывания можно установить, поместив курсор в нужную строку программы и нажав клавишу F5. Если точка прерывания установлена в подпрограмме, то имеется возможность посмотреть, каким образом эта подпрограмма была вызвана (т.е. из каких подпрограмм, с какими аргументами и т.п.). Для этого следует открыть окно программного стека, нажав клавишу Ctrl-Alt-S после того, как выполнение программы приостановилось в точке прерывания. В окне программного стека отражается "история" вызова подпрограмм. Находясь в этом окне, можно продолжать трассировку программы с помощью клавиш F7, F8 или выполнить программы до следующей точки прерывания, нажав клавиши F9.
Точки прерывания целесообразно использовать при отладке циклических участков программы. При наличии точки прерывания внутри цикла выполнение программы будет приостанавливаться при каждом проходе цикла. Иногда это становится неудобным, так как программисту приходится "добираться" до интересующего его момента выполнения цикла с помощью многократного нажатия клавиши F9. Сократить трудоемкость отладки можно, воспользовавшись условными точками прерывания, которые устанавливаются следующим способом:
1) установите "обычную" точку прерывания, нажав клавишу F5;
2) выбрать команду ViewDebug Windows|Breakpoints, которая выводит список точек прерывания, установленных в программе. В этом списке последней будет только что установленная точка прерывания;
3) открыть окно редактирования точки прерывания, нажав клавиши Ctrl-E;
4) в третьей строке окна наберите условие прерывания, имеющее вид логического выражения, которое будет вычисляться в ходе исполнения программы; точка прерывания будет игнорироваться до тех пор, пока значение этого выражения не окажется истинным;
5) перейти к четвертой строке окна, нажав клавишу Tab, и набрать число n проходов строки с точкой прерывания; проверка условия прерывание и приостановка программы произойдет на n+1-м проходе строки с точкой прерывания;
6) зафиксировать установку условной точки прерывания, нажав Enter, или отказаться от изменений, сделанных в окне редактирования точки прерывания, нажав Esc.
Со списком точек прерывания можно выполнить и дpугие действия, задаваемые следующими командами:
Ctrl-D - удалить точку прерывания;
Ctrl-S - увидеть строку с точкой прерывания.
Текстовые результаты выполнения программы можно видеть на экране одновременно с текстом программы.
Чтобы быстро найти описание нужной процедуры или функции в тексте программы, следует выбрать команду Search|Find и ввести имя искомой процедуры или функции.
Если программа выполняется автономно от системы Delphi и возникает семантическая ошибка, сопровождаемая сообщением
Runtime error nnn at xxxx:yyyy,
то для определения оператора, выполнение которого привело к ошибке, нужно запомнить адрес команды xxxx:yyyy, запустить систему Delphi, поместить в окно редактора текст программы, выбрать команду Search|Find error и набрать адрес xxxx:yyyy. После этого курсор укажет место в программе, в котором возникла ошибка. Если программа запускается на выполнение из системы Delphi, то ошибочное место указывается системой автоматически.