首页 > 代码库 > GDB调试Core文件
GDB调试Core文件
关于Core文件
Linux程序在运行过程中可能会出现奔溃的现象,此时启用Core文件可以记录程序的奔溃现场,方便事后查找问题。
准备工作
- 启用core文件
默认情况下的core文件是不启用的,即程序奔溃不会生成奔溃core文件,所以需要开启这个功能 - 查看core文件状态
ulimit -a
如果core file size行为0,那么表示没有启用core文件,需要执行ulimit -c 2048
重置core文件大小的上限,可以自定义文件大小上限值。
- 设定core文件名和保存地址
sudo echo "./core.%p" > /proc/sys/kernel /core_pattern
上述命令表示在当前目录生成奔溃文件,文件带了进程ID。还有其他可选的参数:%p - insert pid into filename %u - insert current uid into filename %g - insert current gid into filename %s - insert signal that caused the coredump into the filename %t - insert UNIX time that the coredump occurred into filename %h - insert hostname where the coredump happened into filename %e - insert coredumping executable name into filename
使用core文件
按照之前的设置,当程序奔溃后,会在程序所在目录生成core文件。此时我们就可以使用gdb打开core文件
gdb 程序名 core文件一般情况下,程序会直接定位到程序出错的位置,如果没有,可以使用where命定来定位。
需要注意,程序编译时要加上参数选项-g,使得由足够多的调试信息。
GDB调试Core文件
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。