C++ 产生core 文件

本文介绍如何在Linux环境下解决C++程序崩溃但未生成core文件的问题,包括检查和开启core文件生成的方法,以及如何永久配置系统以确保core文件的正常生成。

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

今天运行一个程序的时候,程序退出,但是没有core文件,可以稳定复现,查了查产生core文件条件,不知道怎么快速定位这个问题:

一:C++ 产生core文件的条件:
1:是允许core文件产生,例如你设置 ulimit -c unlimited。并且对core文件的产生目录(也就是工作目录)要有写权限。
2:是程序收到了产生core文件的信号,例如SIGABRT信号

二:linux 系统设置core开关的方法

1.查看当前是否已经打开了此开关 通过命令:ulimit -c 如果输出为 0 ,则代表没有打开。如果为unlimited则已经打开了,就没必要在做打开。
2.通过命令打开 ulimit -c unlimited .然后通过步骤1,可以监测是否打开成功。
3.如果你要取消,很简单:ulimit -c 0 就可以了

通过上面的命令修改后,一般都只是对当前会话起作用,当你下次重新登录后,还是要重新输入上面的命令,所以很麻烦。我们可以把通过修改 /etc/profile文件 来使系统每次自动打开。
步骤如下:

1.首先打开/etc/profile文件
一般都可以在文件中找到 这句语句:ulimit -S -c 0 > /dev/null 2>&1.ok,根据上面的例子,我们只要把那个0 改为 unlimited 就ok了。然后保存退出。
2.通过source /etc/profile 使当期设置生效。
3.通过ulimit -c 查看下是否已经打开。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值