深入探索Linux coredump调试技巧

1.       coredump 产生的原理和局限

 

1.1.  如何产生 core 文件

       要素一,必须有信号产生:

       从上面的信号定义和说明可以看出,进程中止前肯定会产生信号,然后内核根据信号的类型来决定是否要产生 core 文件。

要素二,编译器支持:

       要产生 core 文件,编译器必须支持把当前进程的镜像以某种格式 dump 到一个文件中,常见的比如 gcc/g++ -g 选项。

要素三,环境参数支持:

通过 ulimit –a 查看 core file size 是否为 0 ,如果为 0 则不能产生 core 文件。

通过 ulimit –c unlimited 可以系统能支持的产生足够大的 core 文件,也可以设置为具体值。

特别说明:

core 文件的产生不是 POSIX.1 所属部分,而是很多 UNIX/Linux 版本的实现特征。

 

1.2.  Unix/Linux 对信号的处理方式

 

UNIX System signals

Name

Description

ISO C

SUS

FreeBSD 5.2.1

Linux 2.4.22

Mac OS X 10.3

Solaris 9

Default action

SIGABRT

abnormal termination (abort )

terminate+core

SIGALRM

timer expired (alarm )

 

terminate

SIGBUS

hardware fault

 

terminate+core

SIGCANCEL

threads library internal use

 

 

 

 

 

ignore

SIGCHLD

change in status of child

 

ignore

SIGCONT

Continue stopped process

 

continue/ignore

SIGEMT

hardware fault

 

 

terminate+core

SIGFPE

arithmetic exception

  • 1
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值