【问题标题】:How to jump back to the line of code that threw exception in Visual Studio 2010 debugger?如何跳回到在 Visual Studio 2010 调试器中引发异常的代码行?
【发布时间】:2013-02-07 06:56:16
【问题描述】:

使用 Visual Studio 2010 调试器,我熟悉使用“调用堆栈”窗口查看当前执行的函数是从哪里调用的。

我正在使用一些具有相当大的try 块的应用程序。假设我在 catch 块中的断点处暂停代码的执行,那么判断 try 块中的哪一行引发异常的最简单方法是什么?

我知道“堆栈跟踪”包含行号等详细信息,但是否有更简单的方法(例如快捷键)导航回引发异常的代码行?

更新:我想强调一下,我不希望将执行点移回try块;我只是想要一种更简单的方法来了解异常是从哪一行引发的。

【问题讨论】:

    标签: visual-studio-2010 visual-studio debugging exception exception-handling


    【解决方案1】:

    一个解决方案可能是让 VS 在所有异常上中断:

    选择Debug菜单下的Exceptions,勾选Common Language Runtime Exceptions相关的“Thrown”框。

    现在 VS 应该停止并标记引发异常的行。您可以像往常一样继续,点击播放按钮或 F5。

    这样做的缺点是所有异常都会以相同的方式被捕获,如果你有很多异常,这可能会很烦人。

    【讨论】:

    • 我会看看效果如何。我只是讨厌一个大函数抛出异常,我必须深入堆栈跟踪以查看它的来源!
    • 顺便问一下,JavaScript 错误怎么办?有没有类似的东西可以用于 JavaScript 错误处理? JavaScript Error 对象的处理方式类似于 .net Exception 对象。
    • 我相信在同一个地方有一个 JS 设置/复选框,但我从未测试过。不过应该很容易尝试一下!
    • 奇怪的是,在@DaveShaw 发布的屏幕截图中,有一个选择,但由于某种原因,它没有出现在我的电脑上。也许是因为我使用的 Visual Studio 版本(2010)。
    【解决方案2】:

    如果您转到“DEBUG”、“Exceptions...”,然后针对“Common Language Runtime Exceptions”选择“Thrown”。

    然后当你的代码遇到异常时,它会停在出现错误的那一行。

    【讨论】:

    【解决方案3】:

    对于 Visual Studio 2019:

    转到Debug -> Windows -> Exception Settings 并在Common Language Runtime Exceptions 下标记每个异常。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-12-04
      • 1970-01-01
      • 1970-01-01
      • 2015-09-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多