【问题标题】: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
但是,为什么还要设置这些断点呢?如果是为了在抛出异常时捕获它们,您可以让调试器在工具/异常下发生时自动中断。