中止信号的一般原因是什么?

Man*_*dar 5 linux signals abort

我有一个应用程序,在C++中运行linux,在退出时获取中止信号.在我寻找代码来寻找问题之前,我需要知道在什么情况下我将从内核获得中止信号.这可以给我正确的调试方向.

请提及应用程序可能获得中止信号的每个可能情况.

@具体执行方案是,

  • 进程处于退出模式,即调用exit()例程以正常关闭进程.
  • 因此调用所有全局对象析构函数.

TIA

Bru*_*uce 3

  • 使用-g编译它
  • 从调试器运行它

当应用程序崩溃时,调试器会给你一行,让你检查线程、变量......

其他解决方案:

  • 使用ulimit更改核心转储生成
  • 在 gdb 事后加载核心转储

根本原因可能有多个:读取内存空间之外、除以 0、取消引用无效指针...