我想在我的进程崩溃时创建一个核心转储。目前我正在遵循这种方法:
- 使用 gcc/g++ 的“-g”构建程序的特殊“调试”版本。
- 执行“ulimit -c unlimited”
- 现在,只要程序崩溃,我们就会得到核心转储。
但我想尽量减少步骤数,以便:
- 核心转储应该总是被创建。即使它是“发布”构建。不应要求用户手动执行命令“
ulimit -c unlimited
”。 - 那个核心转储的回溯应该能够给出调用的文件、函数、行号。这是一种人类可读形式的堆栈跟踪。
- 我不想使用“-g”将程序构建为调试版本。或者至少它不应该包含任何其他不需要生成人类可读堆栈跟踪的调试信息。因为这将是该程序的发布版本。
所以我有两个问题:
- 如何在程序的“发布”版本中创建核心转储?
- 总是。无需手动执行“
ulimit -c unlimited
”
最佳答案
关于linux - Linux 中的核心转储,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2251391/