我想在抛出 stackoverflow 异常时查看调用堆栈。 (即我想查明是什么递归调用导致了堆栈溢出)。 调用堆栈被清除,我只能看到“外部代码”。
编辑我遵循了 Chris Schmich 的建议(下面发布),现在我有一个如下所示的调用堆栈,这只是我正在编写的一个普通控制台应用程序,请注意,屏幕截图中没有提及 Main() :
Edit2:我遵循 Chris Schmich 关于查看不同线程调用堆栈的建议,但是我似乎仍然无法查看我的控制台应用程序的调用堆栈,这是我可以看到的:
最佳答案
您看到的[External Code]
框架是因为调试器的“Just My Code”功能。调试器向您隐藏堆栈帧,因为它们不在您的代码中。关于JMC的一些详细信息可以在this blog post中找到.
您可以通过执行以下操作来禁用“仅我的代码”:
- 调试 » 选项和设置... » 取消选中“仅启用我的代码(仅限托管)” » 单击“确定”
您现在应该能够看到所有堆栈帧。
对于 JMC 的示例,当我进入启用了 JMC 的简单 C# 控制台应用程序时,我只看到解决方案中的代码...
...在禁用 JMC 的情况下,我也看到了框架代码...
关于visual-studio-2010 - 当抛出堆栈溢出异常时在 Visual Studio 2010 中查看 CallStack,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4148913/