Chinaunix首页 | 论坛 | 博客
  • 博客访问: 309745
  • 博文数量: 36
  • 博客积分: 2546
  • 博客等级: 少校
  • 技术积分: 530
  • 用 户 组: 普通用户
  • 注册时间: 2008-01-15 10:28
文章分类

全部博文(36)

文章存档

2012年(1)

2011年(2)

2009年(4)

2008年(29)

我的朋友

分类: C/C++

2008-07-17 15:33:48

1、简单介绍:
程序崩溃时,一般会在指定的目录下生成一个core文件。core文件仅仅是一个内存映象(同时加上调试信息),主要是用来调试的。
2、开启或关闭core文件的生成
ulimit -c 可以查看是否打开此选项,若为0则为关闭;
ulimit -c 0可手动关闭
ulimit -c 1000 为设置core文件大小最大为1000k
3、设置Core Dump的核心转储文件目录和命名规则

/proc/sys/kernel/core_uses_pid可以控制产生的core文件的文件名中是否添加pid作为扩展,如果添加则文件内容为1,否则为0
proc/sys/kernel/core_pattern可以设置格式化的core文件保存位置或文件名,比如原来文件内容是core-%e
可以这样修改:
echo "/corefile/core-%e-%p-%t" > core_pattern
将会控制所产生的core文件会存放到/corefile目录下,产生的文件名为core-命令名-pid-时间戳
以下是参数列表:
    %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 添加命令名

4. 使用core文件

  在core文件所在目录下键入:
      gdb -c core
  它会启动GNU的调试器,来调试core文件,并且会显示生成此core文件的程序名,中止此程序的信号等等
  如果你已经知道是由什么程序生成此core文件的,比如./a.out崩溃了生成core.12345,那么用此指令调试:
      gdb -c core ./a.out

阅读(1252) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~