C程序崩溃与退出代码:9(SIGKILL)

前端之家收集整理的这篇文章主要介绍了C程序崩溃与退出代码:9(SIGKILL)前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我的应用程序崩溃了EXIT CODE:9(SIGKILL)

我从来没有运行任何可以杀死正在运行的进程的命令,例如’kill -9(pid)’或’pkill(进程名)’.

在这种情况下我应该从哪里开始调试?

>我试图在程序崩溃时转储堆栈跟踪,但我发现无法捕获SIGKILL进行错误处理.
>该程序使用MPI并在群集环境中运行.它运行大约1小时后就会死亡.

是否存在可能导致SIGKILL异常的常见原因?

(它在linux上运行;分为os 7)

解决方法

@我回答我自己的问题,以便有些人可以在以后得到帮助.

该异常是由OutOfMemory引起的.

该过程分配了太多的内存给OS带来了压力.操作系统有一个热门人物,oom-killer,为了系统稳定性而杀死这些进程. oom-killer使用称为SIGKILL的子弹.

但是,由于SIGKILL是不可见的(它不能被应用程序捕获和处理),对于包括我在内的一些新手来说,找出崩溃的真正原因并不总是很容易.

一个好消息是,当遇到的人杀死你的进程时,它总是将其动作记录在/ var / log / messages中.

根据您的操作系统配置,oom-killer可能根本不记录任何消息.在这种情况下,您也可以进行配置.在谷歌搜索rsyslog配置.

Finding which process was killed by Linux OOM killer

猜你在找的C&C++相关文章