我为Linux开发了复杂的服务器程序。它使用数千个并行SSL连接并实现为客户端应用程序提供服务的自定义协议
问题是这个程序有时会崩溃。它在终端显示Terminated
消息并停止工作。我启用了自动核心转储以获取崩溃报告并使用GDB进行分析。但是,由于任何原因,Linux(CentOS)不会创建核心转储。看起来它只为分段故障创建核心转储(我运行ulimit -c unlimited
,当我引发分段错误时,创建转储)。
为什么Linux在软件停止工作并且显示Terminated
消息时不创建核心转储,以及如果仅在生产环境中存在并且从不出现在测试计算机中,如何调试这些问题?