【Linux环境配置】core dump配置和快速gdb调试core文件

本文介绍了如何在Ubuntu系统中配置coredump以生成core文件,包括设置core文件格式为`core.%p.%u.%s.%e.%t`和设置核心文件大小限制。通过编写并调试一个示例代码,展示了coredump的使用以及如何使用gdb对core文件进行调试。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

0. 在Ubuntu系统中直接运行导致coredump的程序并没有生成core文件

  • 如下所示, 执行时出现异常, 虽然提示进行core dump实际上并没有产生core文件, 此时就需要配置一下了;
$ gcc -g test.c 
$ ./a.out 
Floating point exception (core dumped)
$ ll
total 32
drwxrwxr-x 2 neo neo  4096 Jan 28 20:51 ./
drwxrwxr-x 4 neo neo  4096 Jan 28 20:50 ../
-rwxrwxr-x 1 neo neo 17016 Jan 28 20:51 a.out*
-rw-rw-r-- 1 neo neo   171 Jan 28 20:51 test.c

1. core dump 设置

1.1 设置core文件格式

  • 在配置文件 /etc/sysctl.conf 中, 配置core文件的格式, 参数名称为: kernel.core_pattern, 参考配置如下:
kernel.core_pattern=core.%p.%u.%s.%e.%t
  • 查询配置是否成功 sysctl -p, 输出示例如下 :
$ sudo sysctl -p
[sudo] password for neo: 
kernel.core_pattern = core.%p.%u.%s.%e.%t

1.2 设置core 大小限制

  • 在配置文件 /etc/security/limits.conf 中, 配置core文件大小限制, 参考配置如下:
* soft core unlimited
* hard core unlimited

2. 写个代码测一下

2.1 示例代码放入 test.c

int actual_calc(int a, int b){
   
	int c;
	c=a
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

逸云沙鸥のIHave@Dream

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值