Глава 29. Встроенный отладчик________________________________849
Просмотр стека вызовов
Иногда для того, чтобы выяснить, ведет ли себя программ так как ожидалось, необходимо узнать порядок обращения к функциям. Это можно сделать путем просмотра стека вызовов (call stack). Окно Call Stack позволяет увидеть, какие функции и в каком порядке были вызваны. С помощью примера, приведенного в листинге 29.4, можно увидеть, как это делается.
#include <iostream.h>
void Fund(void);
void Punc2(void) ;
void Func3(void);
void main(void) {
Fund(); *
Func3() ;
}
void Fund(void) {
cout « "Inside of Fund" « endl;
Func3" () ;
»
void Func2(void) {
cout « "Inside of Func2" « endl;
)
void Func3(void) t
cout « "Inside of Func3" « endl;
Func2() ;
.1
Наберите текст программы из листинга 29.4. Установите точку останова на строке cout в функции Func2 () и запустите программу. Когда выполнение программы прервется, выберите опцию Call Stack (стек вызовов) в меню View, показанном на рис. 29.22.
После выбора опции Call Stack появится окно диалога, подобное изображенному на рис 29.23. Оно показывает порядок выполнения программы на текущий момент времени. Функции, которые были вызваны позже, находятся выше в списке. В данном случае это функция Func2 (), поскольку именно в ней программа была остановлена. Самая первая функция, main (), фигурирует в нижней части списка.