Шаг 292.
Среда программирования Visual C++.
Отладка приложения STUpload. Пошаговое выполнение программы
На этом шаге мы рассмотрим пошаговое выполнение программы.
Сейчас мы пошагово выполним функцию OnCreate() командами Step Into, Step Over и Step Out.
Также мы изучим информацию в окнах Variables и Call Stack.
- Отображение панелей Variables и Call Stack.
- Если окно Variables не отображено на экране, щелкните кнопку Variables в панели инструментов
отладчика. Оно выглядит, как показано на рисунке 1.
Рис.1. Окно и кнопка Variables
- Щелкните "+" рядом с названием переменной lpCreateStruct, чтобы раскрыть соответствующий список.
Эта переменная - единственная в окне Variables, так как в стеке функции содержится только она. Она указывает
на структуру CREATESTRUCT, поля которой появятся в окне Variables после раскрытия списка.
Вы сможете узнать, что, например, поле lpszName содержит указатель на название приложения.
- Откройте окно Call Stack (рисунок 2), щелкнув кнопку Call Stack. Вы увидите путь, пройденный
программой до функции OnCreate(), которая возглавляет список. Вторая функция в стеке вызвала функцию
OnCreate(), к ней вернется управление после завершения OnCreate(). Здесь это часть каркаса
MFC-приложения - функция CWnd::OnWndMsg().
Рис.2. Окно Call Stack отладчика Visual C++
- Щелкните кнопку Call Stack еще раз, чтобы закрыть окно Call Stack.
- Пошаговое выполнение функции OnCreate().
- Выполните первые две или три инструкции функции OnCreate(), щелкая кнопку Step Over или
нажимая клавишу F10. Каждый раз программа будет останавливаться на следующей за выполненной команде
и помечать ее желтой стрелкой. Обратите внимание на изменения данных в окне Variables.
- Продолжайте пошаговое выполнение программы, пока желтая стрелка не укажет на строку, настраивающую
стыковку панели инструментов с окном:
m_wndToolBar.EnableDocking(CBRS_ALIGN_ANY);
- Щелкните кнопку Step Into, чтобы перейти внутрь функции каркаса CControlBar::EnableDocking().
Отладчик автоматически найдет соответствующий ей файл Bardock.cpp и откроет его. Программа остановится
на первой инструкции данной функции.
Рис.3. Обращение к файлу Bardock.cpp
- Если захотите, Вы можете пошагово выполнить и команды функции CControlBar.EnableDocking, после
чего щелкните кнопку Step Out, чтобы выйти из функции. Ее оставшаяся часть будет выполнена, и управление вернется
к CMainFrame::OnCreate(), а программа остановится на команде, следующей за вызовом функции
CControlBar::EnableDocking():
EnableDocking(CBRS_ALIGN_ANY);
На следующем шаге мы закончим рассматривать пошаговое выполнение программы.
Предыдущий шаг
Содержание
Следующий шаг