visual-studio-2010 - 当抛出堆栈溢出异常时在 Visual Studio 2010 中查看 CallStack

标签 visual-studio-2010 stack-overflow

我想在抛出 stackoverflow 异常时查看调用堆栈。 (即我想查明是什么递归调用导致了堆栈溢出)。 调用堆栈被清除,我只能看到“外部代码”。

编辑我遵循了 Chris Schmich 的建议(下面发布),现在我有一个如下所示的调用堆栈,这只是我正在编写的一个普通控制台应用程序,请注意,屏幕截图中没有提及 Main() :

alt text

Edit2:我遵循 Chris Schmich 关于查看不同线程调用堆栈的建议,但是我似乎仍然无法查看我的控制台应用程序的调用堆栈,这是我可以看到的:

alt text

最佳答案

您看到的[External Code]框架是因为调试器的“Just My Code”功能。调试器向您隐藏堆栈帧,因为它们不在您的代码中。关于JMC的一些详细信息可以在this blog post中找到.

您可以通过执行以下操作来禁用“仅我的代码”:

  • 调试 » 选项和设置... » 取消选中“仅启用我的代码(仅限托管)” » 单击“确定”

您现在应该能够看到所有堆栈帧。

对于 JMC 的示例,当我进入启用了 JMC 的简单 C# 控制台应用程序时,我只看到解决方案中的代码...

alt text

...在禁用 JMC 的情况下,我也看到了框架代码...

alt text

关于visual-studio-2010 - 当抛出堆栈溢出异常时在 Visual Studio 2010 中查看 CallStack,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4148913/

相关文章:

c - 这听起来像堆栈溢出吗?

c - 运行 gdb 时 Windows 中的堆栈溢出

visual-studio-2010 - 使用 Microsoft Visual Studio C++ 2010 Express(免费版)创建 map 文件时出错

c# - 修改machine.config后VS崩溃,组件也多

c++ - 使用Visual Studio 2010编写GStreamer插件

c - 添加动态变量时 C 列表的堆栈溢出

javascript - 这段 JavaScript 代码会创建一个大堆栈吗?

c - 在这种情况下,无限递归调用应该引发堆栈溢出吗?

visual-studio-2010 - 如何在 DataGridview 的末尾添加一行?

visual-studio-2010 - 重命名 dbml 后将 Linq 更改为 SQL DataContext 类名