码迷,mamicode.com
首页 > 数据库 > 详细

GDB调试Core文件

时间:2015-01-27 16:32:13      阅读:196      评论:0      收藏:0      [点我收藏+]

标签:gdb   core文件   ubuntu   linux   调试技巧   

关于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文件

标签:gdb   core文件   ubuntu   linux   调试技巧   

原文地址:http://blog.csdn.net/arbboter/article/details/43194741

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!