每当进程崩溃时,我都想创建一个核心转储。目前,我正在采用这种方法:
但我想减少步骤数,以便:
ulimit -c unlimited
所以我有两个问题:
通常的解决方案是使用-g进行构建,并在释放文件之前剥离调试信息。查找“ strip”命令。您将文件包含调试信息,并用它来调试从客户那里获得的核心转储。
如果要在用户机器上打印人类可读的回溯记录,则需要分发带有(某些)调试信息的二进制文件。在glibc中查找“ backtrace()”函数。
请注意,即使您的二进制文件不包含调试信息,也会创建核心转储(如果ulimit设置正确)。
确保创建核心转储的最佳方法可能是在运行二进制文件之前,通过设置ulimit的脚本执行二进制文件。