1.调用堆栈

(1) 作用

通过调用堆栈窗口,我们可以及时的跟踪当前堆栈上的函数调用情况,也就是说对于多重调用的情况,我们可以通过调用堆栈窗口查看当前函数被那个位置的那个函数调用了。

(2) 相关实例
#include <iostream>
int function4() {
    return 4;
}
int function3(int f) {
    return function4() * f;
}
int function2(int f) {
    return function3(f) * f;
}
int function1(int f) {
    return function2(f) * f;
}

int main()
{
    int ret = function1(10);
}

在上面的例子中,我们在 main 函数下的 ret 处打一个断点,然后在 function4 函数中打一个断点,即:

visual studio程序调试_函数调用


然后,点击运行,让程序运行到 function4 的断点处,获得如下运行结果

visual studio程序调试_堆栈_02


从右下角的调用堆栈可以看出,当前堆栈的使用情况,function4 位于堆栈的顶部,即黄色箭头所指,接下来依次显示了堆栈内部各函数的压栈情况。从中我们可以知道,function4 被 位于15行的function3 调用;function3 被位于18行的function2调用;function1 被位于21行的function1 调用;funciton1 被main 调用。当函数调用情况异常复杂时候(比如我们要查看递归调用的深度时,可以方便的看出堆栈的使用情况)

(3)相关设置

在函数名上右键,我们可以看到相关的设置,通过勾选相关设置能方便的查看我们需要的信息。

visual studio程序调试_ios_03

2.持续更新,未完待续。。。。