gpt4 book ai didi

C++ 程序崩溃,退出代码为 : 9 (SIGKILL)

转载 作者:行者123 更新时间:2023-12-02 01:35:36 24 4
gpt4 key购买 nike

我的应用程序崩溃并显示退出代码:9 (SIGKILL)

我从未运行过任何可以终止正在运行的进程的命令,例如“kill -9(pid)”或“pkill(进程名称)”。

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

  1. 我尝试在程序崩溃时转储堆栈跟踪,但发现无法捕获 SIGKILL 进行错误处理。

  2. 该程序使用MPI并在集群环境中运行。它在运行大约 1 小时后就会死亡。

是否有任何常见原因会导致 SIGKILL 异常?

(它在 Linux 上运行;cent os 7)

最佳答案

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

该异常是由 OutOfMemory 引起的。

该进程分配过多内存,给操作系统带来压力。操作系统有一个 killer oom-killer,它会为了系统稳定性而杀死这些进程。 oom-killer 使用名为 SIGKILL 的子弹。

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

一个好消息是,当 killer 杀死你的进程时,它总是将其操作记录在/var/log/messages 中。

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

Finding which process was killed by Linux OOM killer

关于C++ 程序崩溃,退出代码为 : 9 (SIGKILL),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40888164/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com