Linux下core文件的使用方法详解
发表于:2025-12-02 作者:千家信息网编辑
千家信息网最后更新 2025年12月02日,前言有时候程序会异常退出而不带任何日志,此时就可以使用 code 文件进行分析,它会记录程序运行的内存,寄存器,堆栈指针等信息什么是core文件通常在 Linux 下遇到程序异常退出或者中止,我们都会
千家信息网最后更新 2025年12月02日Linux下core文件的使用方法详解
前言
有时候程序会异常退出而不带任何日志,此时就可以使用 code 文件进行分析,它会记录程序运行的内存,寄存器,堆栈指针等信息
什么是core文件
通常在 Linux 下遇到程序异常退出或者中止,我们都会使用 core 文件进行分析,其中包含了程序运行时的内存,寄存器,堆栈指针等信息,格式为 ELF ,可以理解是程序工作当前状态转储成一个文件,通过工具分析这个文件,我们可以定位到程序异常退出或者终止时相应的堆栈调用等信息,为解决问题提供帮助。
使用core文件调试
生成方法
查看当前 core 文件的状态
$ ulimit -a...-c: core file size (blocks) 0 # 关闭状态...
打开生成开关
ulimit -c unlimitedulimit -a...-c: core file size (blocks) unlimited...
对 core 文件的大小进行限制,单位为 blocks ,一般 1 block=512 bytes ,设置太小可能导致不会生成文件
$ ulimit -c 1024$ ulimit -a...-c: core file size (blocks) 1024...
关闭生成开关
ulimit -c 0ulimit -a...-c: core file size (blocks) 0...
上面对 core 文件的操作仅对当前生效,若需要永久生效,则要将相应操作写入 /etc/profile
生成路径
core 文件默认生成在程序的工作目录,可以对生成路径进行设置,需要保证对对应目录有足够空间并具有写权限
echo /MyCoreDumpDir/core.%e.%p > /proc/sys/kernel/core_pattern
其中命名使用的参数列表
%p - insert pid into filename # 添加 pid %u - insert current uid into filename # 添加当前 uid %g - insert current gid into filename # 添加当前 gid %s - insert signal that caused the coredump into the filename # 添加导致产生 core 的信号 %t - insert UNIX time that the coredump occurred into filename # 添加 core 文件生成时的 unix 时间 %h - insert hostname where the coredump happened into filename # 添加主机名 %e - insert coredumping executable name into filename # 添加命令名
/proc/sys/kernel/core_uses_pid 这个文件的值若为1,则无论时候配置 %p ,最后生成的 core 文件都会添加 pid
调试方法
可以使用 gdb 对 core 文件进行调试,编译是需要带上 -g 选项
$ gdb a.out...(gdb) core-file core...(gdb) bt ...
如需要在 PC 上调试嵌入式设备产生的 core 文件,则需要选取相应平台的 gdb 工具,并在进入 gdb 后设置符号文件的位置
$ xxx-xxx-gdb a.out...(gdb) solib-search-path xxx.so:xxx.so...(gdb) core-file core...(gdb) bt...
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对的支持。
文件
生成
程序
信息
堆栈
状态
分析
工作
方法
内存
内容
寄存器
工具
指针
目录
路径
学习
运行
主机
价值
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
河北软件开发多少钱
mysql服务器时间
网络安全口号结尾
山西网络安全和信息化厅职责
无棣网络安全
始兴软件开发哪家比较专业
数据库中汽车的状态怎么定义
怎样更新wpsapi数据库
网络安全分析和情报市场机会
微信赌博软件开发教程
mysql还原指定数据库
数据库应用技术触发器习题
数据库怎么调整数据顺序
网络技术基础与安全实训报告
昌平区专业性网络技术推广优点
云端服务器能用换ip软件吗
arm服务器拆解
网络安全方面的培训
工厂传统软件开发
网络安全法 网游
四川服装外贸软件开发
数据库建立数据表的步骤
哪一项不是数据库系统的特点
财务软件数据库版本怎么查
专科怎么做软件开发师
h5买服务器
海安安卓软件开发培训
2华为网络技术大赛
计算机网络安全维护效果
网络安全的手指