1. Лекция №12 для дисциплин: «Прикладное программирование» и «Языки
программирования»
1
Лекция 12 (ч.2 – 4 часа)
Отладка, тестирование и оптимизация программ на языке С и С++
Инструменты отладчика
В этой главе мы рассмотрим инструменты отладчика, которые очень помогут нам при
отладке программ.
Основными инструментами отладки любой программы являются команды выполнения
программы по шагам и установки точек останова. Естественно, что такие команды имеются и в
среде разработки Borland C++ Builder 6. Команды пошагового выполнения программы
вызываются из главного меню в группе Run или с помощью горячих клавиш. Список этих
команд, их соответствие горячим клавишам и описание назначения приведен втабл. 15.1.
Таблица 15.1. Список пошагового выполнения программы, соответствие команд горячим
клавишам и описание назначения
Команда Горячие
клавиши
Назначение
Step Over <F8> Пошаговое выполнение программы без захода в вызываемые
функции и подпрограммы
Trace Into <F7> Пошаговое выполнение программы с заходом в вызываемые
функции и подпрограммы
Trace to Next
Source Line
<Shift>+<F7> Перейти к следующей исполняемой строке программы
Run to Cursor <F4> Выполнить команды до места расположения курсора
Run Until
Return
<Shift>+<F8> Выполнить команды до выхода из выполняемой функции и
остановиться на операторе, следующем за этой функцией
Команды установки точек останова и некоторые другие вызываются из контекстного меню
инспектора кода через раскрывающийся список команды Debug (рис. 15.1), а также с помощью
горячих клавиш. Контекстное меню вызывается щелчком правой кнопки мыши, когда курсор
находится на окне инспектора кода.
2. Лекция №12 для дисциплин: «Прикладное программирование» и «Языки
программирования»
2
Рис. 15.1. Установка точки останова
Попробуйте применить эти команды на практике, используя программу, приведенную в листинге
14.2. Поместите курсор в инспекторе объектов на строку:
Labell->Caption="KHonKa 1 нажата " + IntToStr(++i) +" раз";
и нажмите клавишу <F5>. При этом строка окрасится в красный цвет, что свидетельствует о том,
что на ней установили точку останова. Теперь при выполнении программы произойдет
автоматический останов на этой строке. Проверьте это, выполнив команду Run с помощью
клавиши <F9>. Программа запустится и на экране появится ее форма. Но стоит щелкнуть левой
кнопкой мыши по кнопке с названием Кнопка 1, программа остановится и откроется окно (рис.
15.2) Инспектора кода с зеленой стрелкой напротив строки, на которой установлена точка
останова.
Теперь, нажимая клавишу <F8>, можно продолжить выполнение программы по шагам. Для
прерывания работы программы необходимо нажать комбинацию клавиш <Ctrl>+<F2>. Можно
продолжить выполнение программы с помощью клавиши <F9>, а затем щелкнуть
кнопку Выход в окне программы для ее завершения. Попробуйте на практике выполнить и
другие команды отладчика, для того чтобы понять их назначение.
3. Лекция №12 для дисциплин: «Прикладное программирование» и «Языки
программирования»
3
Рис. 15.2. Окно инспектора кода
Окна отладчика
Помимо команд отладки среда разработки позволяет просмотреть переменные,
используемые в программе, состояние регистров процессора, процессы, происходящие в
программе, и т. п. Для этих целей используются окна отладчика.
Доступ к окнам отладчика производится через пункт главного меню View | Debug Windows.
При этом откроется окно (рис. 16.1), в котором расположены команды отладчика.
4. Лекция №12 для дисциплин: «Прикладное программирование» и «Языки
программирования»
4
Рис. 16.1. Окно команд отладчика
Команда Breakpoints открывает окно (рис. 16.2), в котором отображаются и редактируются
точки останова.
Рис. 16.2. Окно точек останова
Из этого окна через контекстное меню, вызываемое щелчком правой кнопки мыши, можно
осуществлять добавление, удаление и редактирование точек останова (рис. 16.3).
Рис. 16.3. Контекстное меню
Для вызова команды Breakpoints отладчика можно так же использовать горячие клавиши
<Ctrl>+<Alt>+<B>. Остальные команды можно вызывать аналогично. Комбинация горячих
клавиш для каждой из команд изображена правее самой команды (см. рис. 16.1).
5. Лекция №12 для дисциплин: «Прикладное программирование» и «Языки
программирования»
5
Команда Call Stack вызывает окно просмотра стека программы (рис. 16.4). Данное окно
позволяет увидеть вызовы функций, производимые в программе в момент ее отладки.
Рис. 16.4. Окно просмотра стека программы
Команда Watches открывает окно переменных (рис. 16.5), в котором можно просматривать
переменные, используемые в программе.
Рис. 16.5. Окно переменных
Из окна переменных щелчком правой кнопки мыши можно вызвать контекстное меню (рис.
16.6), с помощью которого появляется возможность редактировать, добавлять, активизировать,
делать невидимыми и удалять переменные из окна отображения переменных.
Рис. 16.6. Контекстное меню окна переменных
6. Лекция №12 для дисциплин: «Прикладное программирование» и «Языки
программирования»
6
Окно редактирования свойств переменных Watch Properties (рис. 16.7) вызывается из
контекстного меню командой Edit Watch или с помощью комбинации клавиш <Ctrl>+<E>. В
этом окне можно выбрать (Expression) отображаемые переменные, разбить переменные на
группы (Group name), задать количество элементов массива (Repeat count) для отображения,
ограничить разрядность (Digits) отображаемых значений, разрешить (Enabled) отображение
переменной, разрешить (Allow Side Effects) отображение выражений и выбрать один из девяти
форматов отображения переменных.
Рис. 16.7. Окно редактирования свойств переменных
Команда Local Variables показывает текущие локальные переменные в отладочном режиме
работы (рис. 16.8).
Рис. 16.8. Окно локальных переменных
7. Лекция №12 для дисциплин: «Прикладное программирование» и «Языки
программирования»
7
Команда Threads отображает окно процессов, происходящих в режиме отладки программы
(рис. 16.9). В частности, в нем можно увидеть имя исполняемой программы, состояние процесса
отладки и адрес точки останова.
Рис. 16.9. Окно процессов отладки
Команда Modules вызывает окно (рис, 16.10), в котором можно просмотреть все
программные модули, их адреса и точки входа.
Рис. 16.10. Окно программных модулей
Команда Event Log отображает окно регистрации событий программы (рис. 16.11).
8. Лекция №12 для дисциплин: «Прикладное программирование» и «Языки
программирования»
8
Рис. 16.11. Окно регистрации событий программы
Рис. 16.12. Окно сообщений CodeGuard Log
Команда CodeGuard Log вызывает окно сообщений (рис. 16.12), сгенерированных
специальной утилитой отладки CodeGuard.
С помощью команды CPU вызывается окно (рис. 16.13), в котором отображается работа
процессора в машинных кодах и содержимое регистров процессора. Если программа не
запущена, данная и следующая команды недоступны.
Наконец, команда FPU вызывает окно (рис. 16.14) для просмотра состояния математического
сопроцессора компьютера.
Рекомендую читателям для тренировки и запоминания с помощью горячих клавиш
поочередно открыть эти окна во время пошагового выполнения программы.
9. Лекция №12 для дисциплин: «Прикладное программирование» и «Языки
программирования»
9
Рис. 16.13. Окно работы процессора
Рис. 16.14. Окно работы математического сопроцессора