每次,我的应用程序崩溃时都不会生成核心转储文件。我记得几天前,它 是在另一台服务器上 生成的。我正在使用 bash 中的屏幕运行应用程序,如下所示:
#!/bin/bash
ulimit -c unlimited
while true; do ./server; done
如您所见,我正在使用 ulimit -c unlimited
如果我想生成核心转储,这很重要,但是当我遇到分段错误时它仍然不会生成它。我怎样才能让它工作?
原文由 Cyclone 发布,翻译遵循 CC BY-SA 4.0 许可协议
确保您的当前目录(在崩溃时 --
server
可能会更改目录)是可写的。如果服务器调用setuid
,则该目录必须可由该用户写入。还要检查
/proc/sys/kernel/core_pattern
。这可能会将核心转储重定向到另一个目录,并且 该 目录必须是可写的。更多信息 在这里。