【问题标题】:Configure the visual studio debugger for try-catch statements为 try-catch 语句配置 Visual Studio 调试器
【发布时间】:2010-04-07 06:05:37
【问题描述】:

VS 2005

例如,

我的员工给了我一个项目,其中包含大约 X 个 try-catch 语句。

X > 100 .. 300

我需要测试一个项目。有没有办法将 catch 的每个(每个)开头标记为断点?我不想手动操作。也许有一些适合我的设置?

【问题讨论】:

  • 感谢您的提问,因为我遇到了完全相同的问题!

标签: visual-studio visual-studio-2005 debugging


【解决方案1】:

转到调试 > 异常(Visual Studio 2013 及更早版本)或调试 > Windows > 异常设置(Visual Studio 2015 及更高版本)。

在此对话框中,您可以启用对异常的首次机会调试 - 当抛出异常时,调试器将在执行“catch”代码之前自动在抛出代码处中断,允许您对其进行调试。

您想要做的是在引发 CLR 异常时要求它中断,不仅是在它们未处理时(Visual Studio 2013 - 2015 中的图像类似,但现在在视图而不是对话框中):

(注意:这不会让调试器在您执行 try 块时中断,只有在实际抛出异常时)

【讨论】:

    【解决方案2】:

    简短的回答是否定的。但是您也许可以为您的项目制作一些面向方面的插件来捕获捕获交叉点,然后您只需在您的方面放置一个断点

    【讨论】:

      【解决方案3】:

      我不知道允许通过某种模式在代码中设置断点的可能性。您可以找到的最接近的是 Debug/New breakpoint/Break at Function ,您可以在其中指定文件和行号。如果您可以自动执行此操作并处理由 grep 搜索生成的列表,您可能会找到一种方法。以下是 IDE 示例中的一些内容,可以帮助您入门:

      ' Sets a pending breakpoint at the function named "main".  It marks the 
      ' breakpoint as one set by automation.
      Sub AddBreakpointToMain()
          Dim bp As EnvDTE.Breakpoint
          Dim bps As EnvDTE.Breakpoints
      
          bps = DTE.Debugger.Breakpoints.Add("main")
          For Each bp In bps
              bp.Tag = "SetByMacro"
          Next
      End Sub
      

      但是,为什么还要设置这些断点呢?如果是为了在抛出异常时捕获它们,您可以让调试器在工具/异常下发生时自动中断

      【讨论】:

        【解决方案4】:

        如果您使用的是较旧的 IDE(2012 年之前的任何版本),您可以使用它

        Programmatically apply / deactivate breakpoints in Visual Studio

        不幸的是,他们从较新的 IDE 中删除了宏。 您可以下载一些扩展,其中之一允许您修改 *.js 文件。问题将是转换这位先生在另一篇文章中写的内容以使其正确阅读。 现在我只使用System.Diagnostics.Debugger.Launch();,这只是一种痛苦,如果有人可以翻译该文件,那就太棒了。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2014-03-02
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2010-09-29
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多