有没有办法让编译器在catch子句中自动命中一个语句(断点)

时间:2013-04-05 14:50:30

标签: c++ visual-studio-2010

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

4 个答案:

答案 0 :(得分:2)

您可以将__debugbreak();(来自<intrin.h>)放在catch子句中,只要到达__debugbreak();,IDE就会停止。

答案 1 :(得分:1)

我不知道这样的功能。

但是,如果转到菜单中的Debug > Exceptions,则可以切换调试器在抛出时会中断的异常类型。我知道这与他们被抓住时的情况不一样,但你应该能够从那里通过一些“步入/结束”步骤达到catch声明。

答案 2 :(得分:0)

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

答案 3 :(得分:0)

为了清楚起见:至少在我了解情况时,您需要在特定行上使用断点,但是当/如果执行特定的catch子句时,只需要 。如果这就是你想要的东西,那么有办法做某些事情,但是(据我所知)你可能需要稍微修改你的代码才能使它工作。

我至少会这样做:

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

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