我想做一些assert
比abort
ing 更有用的事情,包括刷新一些打开的文件和打印堆栈跟踪。
我阅读了一些关于断言的文章,例如Andrei Alexandrescu 的 Assertions,其中讨论了如何实现断言。但是,即使在我的程序使用的第三方库中,我也想自己替换断言处理程序。我了解我使用的大多数(但不是全部)编译器(gcc、MSVC、clang)和库(Qt、boost)都有设置用户定义的断言处理程序的选项。但是目前我Abort,Retry,Ignore
对断言的功能不感兴趣,因此不在编译器/库特定的断言处理程序中查看我的代码。
据我了解,发送信号的assert
调用,我可以捕获此信号并执行有用的任务吗?abort
SIGABRT