我正在尝试遍历这个示例程序的堆栈:
#include <windows.h>
void Func1()
{
Sleep(1000);
}
void Func2()
{
Sleep(1000);
Func1();
}
void Func3()
{
Sleep(1000);
Func2();
}
void main()
{
for (int i = 0; i < 100; i++)
{
Func3();
}
}
在调试模式下,我得到你所期望的。比如:
睡眠
Func3
主要
在释放模式下(启用了帧指针优化),我得到堆栈:
睡眠
主要
在发布运行中,"main"one_answers"sleep"之间的函数去了哪里?
函数被内联。
我只是将"内联函数扩展"更改为Only_inline(在VS2008中),然后出现了缺失的函数。:)