我试图在我的程序中捕获失败的断言。我正在使用一个直接调用 assert() 的库,而不是自定义函数或宏,并且它在这个库中我目前正在尝试跟踪几个与移植相关的错误。所涉及的所有内容都已使用 g++ 中的调试符号编译。
我发现的最佳解决方案是在断言的文件:行处中断,并使用断言表达式的条件。这允许在断言失败之前停止断言,但这是一个可怕的解决方案。它需要对每个可能失败的断言进行特殊设置,在我的 IDE 中不起作用,而且通常需要付出太多努力。
如何以允许检查断言调用范围内的调用堆栈和变量的方式使用 gdb 和 gcc 打破 任何 失败的断言?
如果解决方案允许我放弃断言的失败并继续运行,那就更好了。
原文由 user3995702 发布,翻译遵循 CC BY-SA 4.0 许可协议
在
abort()
上设置断点似乎是最好的答案。break abort
在 gdb 的 CLI 中。