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