如何将所有抛出转换为中止条件以进行调试

How to turn all throws into abort conditions for debugging purposes?

本文关键字:条件 调试 转换      更新时间:2023-10-16

在一个非平凡的程序中,可能会有任意数量的异常被抛出和捕获。虽然这是为了防止崩溃,但它会使调试更加困难(我使用gdb进行调试),因为除非我识别出行并引入断点,否则在调试二进制文件时,我看不到抛出异常的点(及其回溯)。

因此,为了便于分析,告诉g++(或gdb?)将所有throw视为关键错误是有用的,类似于断言失败。这在不破解代码的情况下是可能的吗?

这很琐碎。命令为catch throw。启动gdb,将其指向可执行文件。发出catch throw命令,然后发出run命令。