我在运行Linux的C++中有一个应用程序,该应用程序在退出时会发出中止信号。
在寻求解决该问题的代码之前,我需要知道在什么情况下我会从内核获得中止信号。这可以给我正确的调试方向。

请提及应用程序可能会中止信号的每种潜在情况。

@执行场景的细节是,

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

  • TIA

    最佳答案

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

    当应用程序崩溃时,调试器将为您提供代码行,让您检查线程,变量...

    其他解决方案:
  • 使用ulimit更改您的核心转储
  • 在mortem
  • 中将核心转储加载到gdb中

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

    关于linux - 中止信号的一般原因是什么?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5725672/

    10-12 15:34