【发布时间】:2011-01-16 02:55:02
【问题描述】:
我想在我的进程崩溃时创建一个核心转储。目前我正在遵循这种方法:
- 使用 gcc/g++ 的“-g”构建程序的特殊“调试”版本。
- 执行“ulimit -c unlimited”
- 现在我们在程序崩溃时获取核心转储。
但我想尽量减少步骤数,以便:
- 应始终创建核心转储。即使它是“发布”构建。不应要求用户手动执行命令“
ulimit -c unlimited”。 - 核心转储的回溯应该能够给出调用的文件、函数、行号。这是人类可读形式的堆栈跟踪。
- 我不想使用“-g”将程序构建为调试版本。或者至少它不应该包含生成人类可读堆栈跟踪所不需要的任何其他调试信息。因为这将是程序的发布版本。
所以我有两个问题:
- 如何在程序的“发布”版本中创建核心转储?
- 总是。无需手动执行“
ulimit -c unlimited”
【问题讨论】:
标签: linux gcc crash crash-dumps coredump