1

目前我必须在我的 catch 子句中设置断点。我想知道是否有一种方法可以使编译器在 catch 子句中自动突出显示某个语句。现在我必须在我的异常处理程序中设置一个断点,以便我的编译器让我知道它已经进入了一个异常处理程序。我正在使用 VS2010

4

4 回答 4

2

您可以将__debugbreak();(comes from <intrin.h>) 放在您的catch子句中,IDE 将在__debugbreak();到达时停止。

于 2013-04-05T15:02:17.303 回答
1

我不知道有这样的功能。

但是,如果您进入Debug > Exceptions菜单,您可以切换异常类型,当它们被抛出时调试器将中断它们。我知道这与他们被捕时不同,但你应该能够catch从那里通过几个“步入/结束”步骤来达成声明。

于 2013-04-05T14:59:49.103 回答
0

您可以添加一个ASSERT(FALSE),这将导致调试器在该行停止以进行调试构建。

于 2013-04-05T14:53:44.460 回答
0

只是要明确一点:至少据我了解情况,您需要在特定行上设置断点,但前提/如果执行了特定的 catch 子句。如果这就是你想要的,有办法做事,但(据我所知)你可能需要稍微修改你的代码才能让它工作。

我至少会这样做:

  1. 创建一个全局变量,例如:bool exception_caught;
  2. 在相关的 catch 子句中,添加exception_caught = true;
  3. 使断点有条件exception_caught

顺便说一句,我不记得你是如何在 VS 2010 中创建条件断点的。在 2012 中,你可以像往常一样设置断点(例如,使用 F9)然后右键单击出现的红点,然后condition...从弹出菜单中选择。在旧版本中,您必须单独打开“断点”窗口(但我记得,它的菜单条目有点难找到)。

于 2013-04-05T15:17:22.703 回答