我希望在进程崩溃时创建核心转储。目前我正在遵循以下方法:
- 使用gcc / g ++的“-g”构建程序的特殊“调试”版本。
- 执行“ulimit -c无限制”
- 现在每当程序崩溃时,我们都会得到核心转储。
但是我想最小化步骤数量,以便:
- 应始终创建核心转储。即使它是“发布”构建。用户不应被要求手动执行命令“
ulimit -c无限制
”。 - 该核心转储的回溯应能够提供调用的文件、函数、行号。也就是以人类可读的形式呈现的堆栈跟踪。
- 我不想使用“-g”构建程序。或者至少不应包含任何其他不需要生成人类可读堆栈跟踪的调试信息。因为这将是程序的发布构建。
所以我有两个问题:
- 如何在程序的“发布”构建中创建核心转储?
- 始终。无需手动执行“
ulimit -c无限制
”