C++ Linux Binary以SIGKILL信号终止 - 为什么?(加载到GDB中)

Gee*_*esu 17 c++ ubuntu gdb

所以我在GDB中启动我的c ++应用程序,当它退出时,我基本上得到:

[Thread 0x7fff76e07700 (LWP 6170) exited]
[Thread 0x7fff76f08700 (LWP 6169) exited]
[Thread 0x7fff77009700 (LWP 6168) exited] 
...
Program terminated with signal SIGKILL, Killed. The program no longer exists.
(gdb)
Run Code Online (Sandbox Code Playgroud)

我真的不知道为什么会发生这种情况,为什么我不能做回溯看它是如何退出的呢?有人有主意吗?它应该永远不会结束:(

谢谢!

Emp*_*ian 26

我真的不知道为什么会这样,

这通常意味着要么

  • 其他一些过程执行了kill -9 <your-pid>,或
  • 内核OOM杀手决定你的进程消耗了太多资源,并终止了它(有效地kill -9为它执行了内核).您应该查看/var/log/messages(/var/log/syslog在Ubuntu变体上)的痕迹 - 内核通常在OOM进行某些进程时记录消息.

为什么我不能做回溯看它是如何退出的?

因为要查看回溯,所以该过程必须存在.如果它不存在,则它没有堆栈,因此不能进行回溯.

  • 我应该检查另一个日志(我在ubuntu上)吗? (4认同)