为try-catch语句配置visual studio调试器

时间:2010-04-07 06:05:37

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

VS 2005

例如,

我的员工给了我一个关于X 尝试 - 捕获语句的项目。

X> 100 .. 300

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

4 个答案:

答案 0 :(得分:15)

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

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

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

alt text

(注意:只有在实际抛出异常的情况下,这将不会使调试器在执行try块时中断)

答案 1 :(得分:0)

简短的回答是否定的。但是你可能能够为你的项目创建一个面向方面的插件来捕获catch交叉点,然后你只需要在你的方面放置一个断点

答案 2 :(得分:0)

我不知道允许在某些模式下在代码中设置断点的可能性。您最接近的是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

但是,为什么要设置这些断点呢?如果是为了在抛出异常时捕获异常,只要在工具/例外情况下发生,就可以使调试器 自动中断

答案 3 :(得分:0)

如果您使用的是旧版IDE(2012年之前的任何内容)

,则可以使用此功能

Programmatically apply / deactivate breakpoints in Visual Studio

不幸的是,他们从较新的IDE中移除了宏。 您可以下载扩展,其中一个允许您修改* .js文件。问题将转变为绅士在其他帖子中所写的内容,以使其正确阅读。 现在我只是使用System.Diagnostics.Debugger.Launch();它只是一个痛苦,如果有人可以翻译该文件,它会很棒。