
- •1 Цель и порядок работы
- •2 Краткая теория
- •2.1 Понятие отладки
- •2.2 Разновидности ошибок
- •2.2.1 Ошибки этапа компиляции
- •2.2.2 Ошибки этапа выполнения
- •2.2.3 Логические ошибки
- •2.3 Методы отладки
- •2.3.1 Установка точки прерывания
- •2.3.2 Выполнение программы до точки прерывания
- •2.3.3 Прекращение отладки
- •2.3.4 Пошаговое выполнение программы и трассировка
- •2.3.5 Выполнение программы до курсора
- •2.3.6 Отслеживание значений переменных во время выполнения программы
- •2.3.7 Создание условной точки останова
- •2.4 Работа с отладчиком
- •2.4.1 Выполнение программы по шагам без захода в функцию
- •2.4.2 Выполнение программы по шагам с заходом в функцию (трассировка)
- •3 Контрольные вопросы
2.4.2 Выполнение программы по шагам с заходом в функцию (трассировка)
Чтобы выполнить трассировку кода, необходимо выбрать команду Debug | Trace Into или нажать клавишу F11.
Первое нажатие на F11 также передает управление на фигурную скобку основной программы (строка 0). Повторные нажатия F11 снова перемещают строку управления на теже операторы, что и F10, пока мы не доходим до строки 7.1. После этого нажатие клавиши F11 трассирует вызов функции sqr – строка выполнения перемещается на фигурную скобку в блоке функции (строка 10). Если продолжать нажимать F11, строка выполнения перемещается по функции, а затем, когда дойдет до оператора return (при этом указатель будет располагаться напротив закрывающей фигурной скобки), возвращается к оператору вызова.
Следует обратить внимание на то, что трассировке подвержены и функции стандартных библиотек. Так, например, при выводе на экран s при помощи стандартного потока cout будет произведена трассировка функции вывод. Во избежание данного поведения необходимо использовать пошаговое выполнение (Step Over) по клавише F10, либо нажимать Shift + F11 для выхода из трассируемой функции.
3 Контрольные вопросы
Что такое отладка?
Для чего предназначена отладка?
Какие разновидности ошибок существуют?
Какие средства отладки предоставляет среда разработки MS Visual C++?
Что такое точка остановки (breakpoint)?
Какие дополнительные условия можно устанавливать в точке остановки?
Какие возможности существуют для слежения за значениями переменных во время отладки?
Как изменить значение переменной?
Какие горячие клавиши для работы с отдатчиком вы знаете?