如何从core dump文件中获取崩溃程序的完整命令行路径与参数
操作方法
你可以按以下优先级尝试获取完整启动参数:
- 方法1:使用GDB内置命令查询
加载core文件进入GDB交互界面后,直接执行:
正常情况下会直接输出完整的进程启动命令行,包含程序绝对路径和所有启动参数,是最简便的方案。info proc cmdline - 方法2:手动打印argv数组
如果方法1无法生效,可通过打印main函数参数数组获取:- 执行
print argv确认参数数组地址 - 依次打印数组元素直到返回空指针:
拼接所有打印结果即可得到完整启动命令。print argv[0] # 输出程序绝对路径 print argv[1] # 输出第一个参数config1 print argv[2] # 输出第二个参数config2 - 执行
前置配置(针对后续core生成)
如果以上两种方法都无法获取数据,说明当前系统的core dump配置没有保留对应元数据,可在复现问题前修改配置:
- 临时生效:执行命令
echo 0x7f > /proc/self/coredump_filter - 永久生效:在
/etc/sysctl.conf中添加配置项fs.coredump_filter=0x7f,保存后执行sysctl -p即可生效。
内容的提问来源于stack exchange,提问作者Jacks Fengggg
相关产品推荐
相关产品推荐

