如何在GDB中生成核心转储文件?配置与手动操作咨询
GDB核心转储相关问题解答
1. 能否配置.gdbinit自动生成核心转储文件?
可以。你可以在.gdbinit文件中添加GDB命令,实现程序崩溃时自动生成核心转储:
- 方法一:开启全局自动保存
在.gdbinit中加入:
程序因任何原因停止(包括崩溃)时,GDB会自动生成核心转储文件。set auto-save-on-stop on - 方法二:针对崩溃信号精准触发
如果你只想在程序因特定崩溃信号(比如段错误SIGSEGV)触发时生成转储,可以在.gdbinit中添加:
可根据需求替换# 处理段错误信号:停止程序、打印信息、传递信号 handle SIGSEGV stop print pass # 绑定信号触发时的执行命令 command SIGSEGV # 生成带时间戳的核心转储文件,避免覆盖 gcore auto_core_$(date +%Y%m%d_%H%M%S) endSIGSEGV为其他崩溃信号(如SIGABRT)。
2. 程序崩溃后,GDB会话中手动生成核心转储的命令是什么?
直接使用gcore命令即可,语法为:
gcore [文件名]
- 不指定文件名时,默认生成名为
core的转储文件; - 指定文件名可避免覆盖,例如:
执行后GDB会立即生成当前程序状态的核心转储文件。gcore my_crash_dump.core
内容的提问来源于stack exchange,提问作者intrigued_66
相关产品推荐
相关产品推荐

