SlideShare a Scribd company logo
1 of 9
Download to read offline
Лекция №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), а также с помощью
горячих клавиш. Контекстное меню вызывается щелчком правой кнопки мыши, когда курсор
находится на окне инспектора кода.
Лекция №12 для дисциплин: «Прикладное программирование» и «Языки
программирования»
2
Рис. 15.1. Установка точки останова
Попробуйте применить эти команды на практике, используя программу, приведенную в листинге
14.2. Поместите курсор в инспекторе объектов на строку:
Labell->Caption="KHonKa 1 нажата " + IntToStr(++i) +" раз";
и нажмите клавишу <F5>. При этом строка окрасится в красный цвет, что свидетельствует о том,
что на ней установили точку останова. Теперь при выполнении программы произойдет
автоматический останов на этой строке. Проверьте это, выполнив команду Run с помощью
клавиши <F9>. Программа запустится и на экране появится ее форма. Но стоит щелкнуть левой
кнопкой мыши по кнопке с названием Кнопка 1, программа остановится и откроется окно (рис.
15.2) Инспектора кода с зеленой стрелкой напротив строки, на которой установлена точка
останова.
Теперь, нажимая клавишу <F8>, можно продолжить выполнение программы по шагам. Для
прерывания работы программы необходимо нажать комбинацию клавиш <Ctrl>+<F2>. Можно
продолжить выполнение программы с помощью клавиши <F9>, а затем щелкнуть
кнопку Выход в окне программы для ее завершения. Попробуйте на практике выполнить и
другие команды отладчика, для того чтобы понять их назначение.
Лекция №12 для дисциплин: «Прикладное программирование» и «Языки
программирования»
3
Рис. 15.2. Окно инспектора кода
Окна отладчика
Помимо команд отладки среда разработки позволяет просмотреть переменные,
используемые в программе, состояние регистров процессора, процессы, происходящие в
программе, и т. п. Для этих целей используются окна отладчика.
Доступ к окнам отладчика производится через пункт главного меню View | Debug Windows.
При этом откроется окно (рис. 16.1), в котором расположены команды отладчика.
Лекция №12 для дисциплин: «Прикладное программирование» и «Языки
программирования»
4
Рис. 16.1. Окно команд отладчика
Команда Breakpoints открывает окно (рис. 16.2), в котором отображаются и редактируются
точки останова.
Рис. 16.2. Окно точек останова
Из этого окна через контекстное меню, вызываемое щелчком правой кнопки мыши, можно
осуществлять добавление, удаление и редактирование точек останова (рис. 16.3).
Рис. 16.3. Контекстное меню
Для вызова команды Breakpoints отладчика можно так же использовать горячие клавиши
<Ctrl>+<Alt>+<B>. Остальные команды можно вызывать аналогично. Комбинация горячих
клавиш для каждой из команд изображена правее самой команды (см. рис. 16.1).
Лекция №12 для дисциплин: «Прикладное программирование» и «Языки
программирования»
5
Команда Call Stack вызывает окно просмотра стека программы (рис. 16.4). Данное окно
позволяет увидеть вызовы функций, производимые в программе в момент ее отладки.
Рис. 16.4. Окно просмотра стека программы
Команда Watches открывает окно переменных (рис. 16.5), в котором можно просматривать
переменные, используемые в программе.
Рис. 16.5. Окно переменных
Из окна переменных щелчком правой кнопки мыши можно вызвать контекстное меню (рис.
16.6), с помощью которого появляется возможность редактировать, добавлять, активизировать,
делать невидимыми и удалять переменные из окна отображения переменных.
Рис. 16.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. Окно локальных переменных
Лекция №12 для дисциплин: «Прикладное программирование» и «Языки
программирования»
7
Команда Threads отображает окно процессов, происходящих в режиме отладки программы
(рис. 16.9). В частности, в нем можно увидеть имя исполняемой программы, состояние процесса
отладки и адрес точки останова.
Рис. 16.9. Окно процессов отладки
Команда Modules вызывает окно (рис, 16.10), в котором можно просмотреть все
программные модули, их адреса и точки входа.
Рис. 16.10. Окно программных модулей
Команда Event Log отображает окно регистрации событий программы (рис. 16.11).
Лекция №12 для дисциплин: «Прикладное программирование» и «Языки
программирования»
8
Рис. 16.11. Окно регистрации событий программы
Рис. 16.12. Окно сообщений CodeGuard Log
Команда CodeGuard Log вызывает окно сообщений (рис. 16.12), сгенерированных
специальной утилитой отладки CodeGuard.
С помощью команды CPU вызывается окно (рис. 16.13), в котором отображается работа
процессора в машинных кодах и содержимое регистров процессора. Если программа не
запущена, данная и следующая команды недоступны.
Наконец, команда FPU вызывает окно (рис. 16.14) для просмотра состояния математического
сопроцессора компьютера.
Рекомендую читателям для тренировки и запоминания с помощью горячих клавиш
поочередно открыть эти окна во время пошагового выполнения программы.
Лекция №12 для дисциплин: «Прикладное программирование» и «Языки
программирования»
9
Рис. 16.13. Окно работы процессора
Рис. 16.14. Окно работы математического сопроцессора

More Related Content

What's hot

Изучаем паскаль
Изучаем паскальИзучаем паскаль
Изучаем паскальNickEliot
 
среда описание и выполнения алгоритмов.
среда описание и выполнения алгоритмов.среда описание и выполнения алгоритмов.
среда описание и выполнения алгоритмов.liza2209
 
лабораторная работа №1
лабораторная работа №1лабораторная работа №1
лабораторная работа №1Zhanna Kazakova
 
практические работы аис
практические работы аиспрактические работы аис
практические работы аисAnastasia Snegina
 

What's hot (9)

Изучаем паскаль
Изучаем паскальИзучаем паскаль
Изучаем паскаль
 
пр3 (2часа)b pwin
пр3 (2часа)b pwinпр3 (2часа)b pwin
пр3 (2часа)b pwin
 
лр2
лр2лр2
лр2
 
среда описание и выполнения алгоритмов.
среда описание и выполнения алгоритмов.среда описание и выполнения алгоритмов.
среда описание и выполнения алгоритмов.
 
лабораторная работа №1
лабораторная работа №1лабораторная работа №1
лабораторная работа №1
 
лек1
лек1лек1
лек1
 
лр8
лр8лр8
лр8
 
практические работы аис
практические работы аиспрактические работы аис
практические работы аис
 
пр1 (2часа)b pwin
пр1 (2часа)b pwinпр1 (2часа)b pwin
пр1 (2часа)b pwin
 

Similar to лек12 2

Основы работы в BPwin.pdf
Основы работы в BPwin.pdfОсновы работы в BPwin.pdf
Основы работы в BPwin.pdfssuser117705
 
Изучение кода с использованием инструментов архитектуры в Visual Studio Ultim...
Изучение кода с использованием инструментов архитектуры в Visual Studio Ultim...Изучение кода с использованием инструментов архитектуры в Visual Studio Ultim...
Изучение кода с использованием инструментов архитектуры в Visual Studio Ultim...Александр Шамрай
 
Metodicheskie ukazanija auto_cad_2011_dlja_nachinajushchikh_22_02
Metodicheskie ukazanija auto_cad_2011_dlja_nachinajushchikh_22_02Metodicheskie ukazanija auto_cad_2011_dlja_nachinajushchikh_22_02
Metodicheskie ukazanija auto_cad_2011_dlja_nachinajushchikh_22_02get-to-know
 
урок 1
урок 1урок 1
урок 1JIuc
 
C++ теория
C++ теорияC++ теория
C++ теорияtank1975
 
C++ теория
C++ теорияC++ теория
C++ теорияtank1975
 
C++ теория
C++ теорияC++ теория
C++ теорияtank1975
 
лабораторная работа №1
лабораторная работа №1лабораторная работа №1
лабораторная работа №1Zhanna Kazakova
 
Компоненты стандартного меню и стандартные панели инструментов
Компоненты стандартного меню и стандартные панели инструментовКомпоненты стандартного меню и стандартные панели инструментов
Компоненты стандартного меню и стандартные панели инструментовkurbanovafaina
 
Практикум 7 (тема 10)
Практикум 7 (тема 10)Практикум 7 (тема 10)
Практикум 7 (тема 10)Pavel Kallinikov
 
работа в объектно ориентированной среде Delphi
работа в объектно ориентированной среде Delphiработа в объектно ориентированной среде Delphi
работа в объектно ориентированной среде DelphiBaurjanZhalmagambetov
 
Word 2010 power point 2010
Word 2010 power point 2010Word 2010 power point 2010
Word 2010 power point 2010Demanessa
 
Вставка формул в Word от простого к сложному
Вставка формул в Word   от простого к сложномуВставка формул в Word   от простого к сложному
Вставка формул в Word от простого к сложномуGalina Balashova
 
Debug with Visual Studio
Debug with Visual StudioDebug with Visual Studio
Debug with Visual StudioIhor Porotikov
 

Similar to лек12 2 (20)

Основы работы в BPwin.pdf
Основы работы в BPwin.pdfОсновы работы в BPwin.pdf
Основы работы в BPwin.pdf
 
лек11 4
лек11 4лек11 4
лек11 4
 
Изучение кода с использованием инструментов архитектуры в Visual Studio Ultim...
Изучение кода с использованием инструментов архитектуры в Visual Studio Ultim...Изучение кода с использованием инструментов архитектуры в Visual Studio Ultim...
Изучение кода с использованием инструментов архитектуры в Visual Studio Ultim...
 
лек1
лек1лек1
лек1
 
ЛР 4.docx
ЛР 4.docxЛР 4.docx
ЛР 4.docx
 
Metodicheskie ukazanija auto_cad_2011_dlja_nachinajushchikh_22_02
Metodicheskie ukazanija auto_cad_2011_dlja_nachinajushchikh_22_02Metodicheskie ukazanija auto_cad_2011_dlja_nachinajushchikh_22_02
Metodicheskie ukazanija auto_cad_2011_dlja_nachinajushchikh_22_02
 
урок 1
урок 1урок 1
урок 1
 
C++ теория
C++ теорияC++ теория
C++ теория
 
C++ теория
C++ теорияC++ теория
C++ теория
 
C++ теория
C++ теорияC++ теория
C++ теория
 
лабораторная работа №1
лабораторная работа №1лабораторная работа №1
лабораторная работа №1
 
Panel control
Panel controlPanel control
Panel control
 
Компоненты стандартного меню и стандартные панели инструментов
Компоненты стандартного меню и стандартные панели инструментовКомпоненты стандартного меню и стандартные панели инструментов
Компоненты стандартного меню и стандартные панели инструментов
 
Практикум 7 (тема 10)
Практикум 7 (тема 10)Практикум 7 (тема 10)
Практикум 7 (тема 10)
 
работа в объектно ориентированной среде Delphi
работа в объектно ориентированной среде Delphiработа в объектно ориентированной среде Delphi
работа в объектно ориентированной среде Delphi
 
ЛР 1.docx
ЛР 1.docxЛР 1.docx
ЛР 1.docx
 
Urok 3
Urok 3Urok 3
Urok 3
 
Word 2010 power point 2010
Word 2010 power point 2010Word 2010 power point 2010
Word 2010 power point 2010
 
Вставка формул в Word от простого к сложному
Вставка формул в Word   от простого к сложномуВставка формул в Word   от простого к сложному
Вставка формул в Word от простого к сложному
 
Debug with Visual Studio
Debug with Visual StudioDebug with Visual Studio
Debug with Visual Studio
 

More from Anastasia Snegina

птп по ппп 2013 2014
птп по ппп 2013 2014 птп по ппп 2013 2014
птп по ппп 2013 2014 Anastasia Snegina
 
прикл.прогр птп 13 14
прикл.прогр птп 13 14прикл.прогр птп 13 14
прикл.прогр птп 13 14Anastasia Snegina
 
2012 2013 пм спп провидошина
2012 2013  пм спп провидошина2012 2013  пм спп провидошина
2012 2013 пм спп провидошинаAnastasia Snegina
 
2012 2013 пм спп провидошина
2012 2013  пм спп провидошина2012 2013  пм спп провидошина
2012 2013 пм спп провидошинаAnastasia Snegina
 
рп по у пп практике в
рп по у пп практике врп по у пп практике в
рп по у пп практике вAnastasia Snegina
 
рп по пр практике в
рп по пр практике врп по пр практике в
рп по пр практике вAnastasia Snegina
 
рп по у сп практике в
рп по у сп практике врп по у сп практике в
рп по у сп практике вAnastasia Snegina
 
рп по у пп практике вт
рп по у пп практике втрп по у пп практике вт
рп по у пп практике втAnastasia Snegina
 
рп по пр практике вт
рп по пр практике втрп по пр практике вт
рп по пр практике втAnastasia Snegina
 
рп по у сп практике вт
рп по у сп практике втрп по у сп практике вт
рп по у сп практике втAnastasia Snegina
 
рп по у пп практике вт
рп по у пп практике втрп по у пп практике вт
рп по у пп практике втAnastasia Snegina
 
рп по пр практике вт
рп по пр практике втрп по пр практике вт
рп по пр практике втAnastasia Snegina
 
рп по у сп практике вт
рп по у сп практике втрп по у сп практике вт
рп по у сп практике втAnastasia Snegina
 

More from Anastasia Snegina (20)

птп по ппп 2013 2014
птп по ппп 2013 2014 птп по ппп 2013 2014
птп по ппп 2013 2014
 
прикл.прогр птп 13 14
прикл.прогр птп 13 14прикл.прогр птп 13 14
прикл.прогр птп 13 14
 
я.прогр птп
я.прогр птпя.прогр птп
я.прогр птп
 
пп кос вт
пп кос втпп кос вт
пп кос вт
 
пп кос в
пп кос впп кос в
пп кос в
 
пп кос в
пп кос впп кос в
пп кос в
 
2012 2013 пм спп провидошина
2012 2013  пм спп провидошина2012 2013  пм спп провидошина
2012 2013 пм спп провидошина
 
2012 2013 пм спп провидошина
2012 2013  пм спп провидошина2012 2013  пм спп провидошина
2012 2013 пм спп провидошина
 
пп кос вт
пп кос втпп кос вт
пп кос вт
 
рп по у пп практике в
рп по у пп практике врп по у пп практике в
рп по у пп практике в
 
рп по пр практике в
рп по пр практике врп по пр практике в
рп по пр практике в
 
рп по у сп практике в
рп по у сп практике врп по у сп практике в
рп по у сп практике в
 
рп по у пп практике вт
рп по у пп практике втрп по у пп практике вт
рп по у пп практике вт
 
рп по пр практике вт
рп по пр практике втрп по пр практике вт
рп по пр практике вт
 
рп по у сп практике вт
рп по у сп практике втрп по у сп практике вт
рп по у сп практике вт
 
рп по у пп практике вт
рп по у пп практике втрп по у пп практике вт
рп по у пп практике вт
 
рп по пр практике вт
рп по пр практике втрп по пр практике вт
рп по пр практике вт
 
рп по у сп практике вт
рп по у сп практике втрп по у сп практике вт
рп по у сп практике вт
 
лр18
лр18лр18
лр18
 
лр15
лр15лр15
лр15
 

лек12 2

  • 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. Окно работы математического сопроцессора