有一些我不明白的地方。为什么调试器有时只显示调用堆栈的一部分?我试过的是 WinDbg 和 OllyDbg。
让我解释一下我的意思。考虑这个例子:
我启动了一个应用程序,当出现一个对话框时,我将 OllyDbg 附加到应用程序并停下来查看调用堆栈。但是,我看到了这一点:
如您所见,这是应用程序主线程的调用堆栈。不幸的是,所呈现的调用堆栈似乎停止ntdll
并没有继续显示可执行文件中的函数。因为这是主线程,main()
绝对没有返回,否则进程会终止。
当我尝试使用WinDbg中,类似的事情发生,我作为显示在这里。
为什么会发生这种情况,我如何找到完整的调用堆栈?