Linux core dump
# 允许生成 core dump 文件(0 表示禁用,大于 0 的数值表示限制大小,单位为 blocks)
ulimit -c unlimited
# 例如,将 core dump 文件保存到目录,命名格式包含进程 ID 和程序名
echo '/tmp/core-%e-%p-%t' > /proc/sys/kernel/core_pattern
#gdb 调试 , 当使用 gdb
调试包含命令行参数的程序生成的 core dump 文件时,不需要额外处理输入参数,因为 core dump 已经记录了程序崩溃时的完整状态(包括命令行参数、内存数据等)
gdb [可执行程序路径] [core dump 文件路径]
若需要重新运行程序并传递参数(用于复现问题)
如果需要在 gdb 中重新运行程序并传递相同参数(例如对比崩溃前后的状态),可以使用 run
命令带参数
# 在 gdb 中重新运行程序,传递参数
(gdb) run 参数1 参数2 ...