是否有一种方法可以使编译器在catch子句中自动命中语句(断点)
Is there a way to make the compiler automatically hit a statement(breakpoint) once in catch clause
目前我必须在catch子句中设置断点。我想知道是否有一种方法,一旦在catch子句中,编译器就会自动突出显示某个语句。现在我必须在异常处理程序中设置一个断点,以便编译器让我知道它已进入异常处理程序。我使用VS2010
您可以将__debugbreak();
(来自<intrin.h>
)放在catch
子句中,IDE将在__debugbreak();
到达时停止。
我不知道有这样的功能。
然而,如果你转到菜单中的Debug > Exceptions
,你可以切换异常类型,当它们被抛出时调试器将中断。我知道这与它们被捕获时不一样,但是您应该能够通过从那里执行几个"Step into/over"步骤来达到catch
语句。
您可以添加一个ASSERT(FALSE)
,这将导致调试器在该行停止以进行调试构建。
只是要清楚:至少作为我理解的情况,您希望在特定行上有一个断点,但是当/如果执行特定的catch子句时只能。如果这是你想要的,有很多方法可以做到,尽管(据我所知)你可能需要稍微修改一下你的代码才能使它工作。
我至少可以这样做:
- 创建一个全局变量,例如:
bool exception_caught;
- 在相应的catch子句中,增加
exception_caught = true;
- 在
exception_caught
设置断点条件
condition...
。在旧版本中,您必须单独打开"断点"窗口(但据我回忆,它的菜单项有点难以找到)。
相关文章:
- 如何理解C++标准N3337中的expr.const.cast子句8
- 无法删除指针,已触发断点
- 条件断点在不应该触发时触发
- if 子句中的赋值不起作用
- C++20 概念:如何在"requires"子句中引用类名?
- 尝试将另一个子句添加到代码中时出错
- GDB 断点在 Mac 上是不准确的
- 对OpenMP reduction子句中的变量执行原子操作
- 在 vscode 中运行时无法暂停或设置断点
- 不会命中此断点
- 当前不会命中断点。没有调试器目标代码类型的可执行代码与此文件关联
- 要求子句中不允许哪些替换失败?
- "using namespace"子句在什么范围内有效?
- 如何在进入动态打开的共享库时设置断点?
- 为什么断点显示数组的第二个值是一个大数字?额外学分工作
- 代码在 msvcrt .dll函数上设置断点失败
- 如何在引用上设置数据断点
- 无法在visual studio 2017(本机c++)中禁用数据断点
- 为什么在c++中使用Delete[]会出现跟踪/断点错误
- 是否有一种方法可以使编译器在catch子句中自动命中语句(断点)