确保系统已启用核心转储(core dump),可以通过设置ulimit命令来配置。可以通过以下命令检查当前的core dump设置:
ulimit -c
如果返回值为0,表示core dump功能已经禁用。你可以通过以下命令启用core dump:
ulimit -c unlimited
/etc/security/limits.conf,这将允许所有用户生成无限大小的core dump文件。
* hard core unlimited
确保核心dump文件的名称不会被覆盖,通过以下命令设置核心dump文件的名称模板,将核心文件的名称模式设置为“core-可执行文件名-进程ID-时间戳”。
echo "core-%e-%p-%t" | sudo tee /proc/sys/kernel/core_pattern
最后,通过如下命令来查看分析coredump文件的堆栈信息。
gdb <可执行文件> <core dump文件>
bt