Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >CentOS开启coredump转储并生成core文件的配置

CentOS开启coredump转储并生成core文件的配置

作者头像
typecodes
发布于 2024-03-29 05:31:22
发布于 2024-03-29 05:31:22
96300
代码可运行
举报
文章被收录于专栏:typecodestypecodes
运行总次数:0
代码可运行

CentOS或者suse等Linux系统中默认是关闭coredump核心转储的,也就不会产生core文件。由于在C/C++开发中会用到gdb调试,所以需要开启coredump功能。下面是具体的配置命令,可以保存为一个简单的shell脚本执行。

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27

#!/bin/bash ### Filename: coredumpshell.sh ### Description: enable coredump and format the name of core file on centos system # enable coredump whith unlimited file-size for all users echo -e "\n# enable coredump whith unlimited file-size for all users\n* soft core unlimited" >> /etc/security/limits.conf # set the path of core file with permission 777 cd /mydata && mkdir corefile && chmod 777 corefile # format the name of core file. # %% – 符号% # %p – 进程号 # %u – 进程用户id # %g – 进程用户组id # %s – 生成core文件时收到的信号 # %t – 生成core文件的时间戳(seconds since 0:00h, 1 Jan 1970) # %h – 主机名 # %e – 程序文件名 echo -e "/mydata/corefile/core-%e-%s-%u-%g-%p-%t" > /proc/sys/kernel/core_pattern # for centos7 system(update 2017.2.3 21:44) echo -e "/mydata/corefile/core-%e-%s-%u-%g-%p-%t" > /etc/sysctl.conf # suffix of the core file name echo -e "1" > /proc/sys/kernel/core_uses_pid

在Linux终端上执行完上面的脚本后,退出并重新登录即可生效。可以通过[root@typecodes ~]# ulimit -a命令查看效果,如下图所示:

CentOS7.1开启coredump核心转储功能
CentOS7.1开启coredump核心转储功能

最后,写了一个简单C程序测试CentOS是否生成了相应的core文件。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[root@typecodes test]# vim test.c 
#include <stdio.h>
int main( int argc, char * argv[] )
{
    char a[1];
    scanf( "%s", a );
    return 0;
}

使用命令gcc test.c -o test编译后执行,然后故意输入错误的数据,让进程报错。这时,在/mydata/corefile/目录就生成了相应的core文件core-test-11-0-0-27124-1434029850

core文件生成目录
core文件生成目录
update 2017.2.3 21:44

每次重启CentOS7后,由于proc目录是动态更新的,所以系统会初始化core_pattern的值。如果想永久设置coredump文件为上面的格式,那么需要使用编辑文件 /etc/sysctl.conf ,加入kernel.core_pattern=/mydata/corefile/core-%e-%s-%u-%g-%p-%t,然后使用命令sysctl -p /etc/sysctl.conf重新加载。

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24

#!/bin/bash ### Filename: coredumpshell.sh ### Description: enable coredump and format the name of core file on centos system # enable coredump whith unlimited file-size for all users echo -e "\n# enable coredump whith unlimited file-size for all users\n* soft core unlimited" >> /etc/security/limits.conf # format the name of core file. # %% – 符号% # %p – 进程号 # %u – 进程用户id # %g – 进程用户组id # %s – 生成core文件时收到的信号 # %t – 生成core文件的时间戳(seconds since 0:00h, 1 Jan 1970) # %h – 主机名 # %e – 程序文件名 # for centos7 system(update 2017.4.2 21:44) echo -e "\nkernel.core_pattern=/mydata/corefile/core-%e-%s-%u-%g-%p-%t" >> /etc/sysctl.conf # suffix of the core file name echo -e "1" > /proc/sys/kernel/core_uses_pid sysctl -p /etc/sysctl.conf

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2015-06-11 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
linux 下coredump相关
修改文件命令: echo "/corefile/core-%e-%p-%t" > /proc/sys/kernel/core_pattern
意气
2019/05/16
1.8K0
《coredump问题原理探究》Linux x86版第二章coredump捕获的环境配置
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/xuzhina/article/details/8494774
血狼debugeeker
2018/09/20
1.8K0
关于Segmentation fault (core dumped)几个简单问题
有的程序可以通过编译,但在运行时会出现Segment fault(段错误)。这通常都是指针错误引起的。但这不像编译错误一样会提示到文件一行,而是没有任何信息。一种办法是用gdb的step, 一步一步寻找。但要step一个上万行的代码让人难以想象。 我们还有更好的办法,这就是core file。
孙杰
2019/10/29
11.9K0
【YashanDB知识库】EXP导致主机卡死问题
问题单:exp导出全库1主2备主节点执行,DMP文件30G左右系统卡死,发生主备切换
用户10349277
2025/02/20
930
YashanDB知识库|使用EXP导出全库导致服务器卡死?可能是这个原因!
EXP、服务器卡死、OOM、DATA_BUFFER_SIZE、swap空间、内存管理
数据库砖家
2025/04/21
860
Linux Core Dump 解析
Core Dump 也称之为“核心转储”, 若当前操作系统开启了 core dump ,当程序运行过程中发生异常或接收到某些信号使得程序进程异常退出时, 由操作系统把程序当前的内存状况以及相关的进程状态信息存储在一个 Core 文件中, 即 Core Dump 。通常,Linux 中如果内存越界会收到 SIGSEGV 信号,然后就会进行 Core Dump 相关操作。
Luga Lee
2021/12/09
4.1K0
调试coredump步骤(coredump原理)
  在上一篇文章中描述了如何使用Valgrind工具检查内存相关问题,包括内存泄露、空指针使用、野指针使用、重复释放等问题。对于大多数情况下,Valgrind的作用性体现更多在于“内存泄露”检查,因为空指针、野指针的访问,会引发程序段错误(segment fault )而终止,此时可以借助linux系统的coredump文件结合gdb工具可以快速定位到问题发生位置。此外,程序崩溃引发系统记录coredump文件的原因是众多的,野指针、空指针访问只是其中一种,如堆栈溢出、内存越界等等都会引起coredump,利用好coredump文件,可以帮助我们解决实际项目中的异常问题。
全栈程序员站长
2022/07/28
3.3K0
调试coredump步骤(coredump原理)
coredump分析
(1)shell命令行临时设置,只在当前shell有效,其他shell无效,也可将配置放到启动脚本/etc/profile 或~/.bashrc等
Uncle匠
2025/01/08
3980
如何快速定位找出SEGV内存错误的程序Bug
通过查看php日志/usr/local/php/var/log/php-fpm.log,有如下警告信息:
sunsky
2020/08/19
1.6K0
有了core-dump文件,BUG终于解决了!
core-dump文件,又称为核心转储,是操作系统在进程收到某些信号终止运行时,将此时进程的地址空间、进程状态以及其他信息写入到一个文件中,这个文件就是core-dump文件,其主要是为了方便开发人员调试,定位问题。
董哥聊技术
2023/01/18
1.9K0
如何让所有的后台程序(daemons)都可以产生core dumps文件?
Core dumps 默认是关闭的。强烈推荐您不要在生产机器上打开此功能。最好是在 开发的机器或者测试的机器上打开此功能。
一见
2018/08/07
6530
使用ulimit 命令、/etc/security/limits.conf、proc 调整系统参数
Linux是有文件句柄限制的,而且Linux默认不是很高,一般都是1024,生产服务器用其实很容易就达到这个数量 系统总限制是在这里,/proc/sys/fs/file-max.可以通过cat查看目前的值,修改/etc/sysctl.conf 中也可以控制. /proc/sys/fs/file-nr,可以看到整个系统目前使用的文件句柄数量 linux 中数据的含义 /proc/sys/fs/file-nr [root@localhost logs]# cat /proc/sys/fs/fi
sunsky
2020/08/20
2.2K0
说来惭愧,我被ulimit摔了一跤...
自接触 linux 后,大家所受的教育就是 ulimit是最便捷的内核优化途径,事实也确实如此。
运维部落
2020/08/28
1.2K0
说来惭愧,我被ulimit摔了一跤...
关于firewalld和systemd的一些命令速记
CentOS 7 已经用firewalld替换掉了iptables并用systemd来管理启动服务(之前是chkconfig)。而且下一个Ubuntu的长期支持版也要这么干了。
owent
2018/08/01
3980
centos7主机安全检测脚本和初始化脚本
# 一、主机安全检查脚本 #!/bin/bash ##Filename: CentOS_Check_Script.sh ##Description: Security detection script echo "##########################################################################" echo "#
章工运维
2023/05/19
8090
SSH远程连接问题(-bash: fork: retry: Resource temporarily unavailable.)
Linux进程数超过了设置的最大进程数。会对系统进行资源限制,所以分配给ssh进程的资源时有时无,一些命令的bash进程会被杀调,以保证系统进程不超过设置的最大进程数,无法正常执行。即下面的第一个输出要远远小与第二个和第三个输出。如果有些接近就会出现这种问题
山河已无恙
2023/01/30
1.3K0
SSH远程连接问题(-bash: fork: retry: Resource temporarily unavailable.)
【性能优化】Linux系统性能优化汇总
大多数Linux 发布版都定义了适当的缓冲区和其他 Transmission Control Protocol(TCP)参数。可以修改这些参数来分配更多的内存,从而改进网络性能。设置内核参数的方法是通过 proc 接口,也就是通过读写 /proc 中的值。幸运的是,sysctl 可以读取 /etc/sysctl.conf 中的值并根据需要填充/proc,这样就能够更轻松地管理这些参数。清单2 展示在互联网服务器上应用于 Internet 服务器的一些比较激进的网络设置。
Luga Lee
2022/03/25
1.7K0
博客MySQL服务惊魂记:Linux磁盘空间不足(Core Dump文件引爆)
昨天在更新完文章《升级博客文章同步微博的插件:PHP正则提取Markdown的图片地址》后,博客突然无法访问了。
typecodes
2024/03/29
4900
博客MySQL服务惊魂记:Linux磁盘空间不足(Core Dump文件引爆)
内核转储的设置
当程序运行的过程中异常终止或崩溃,操作系统会将程序当时的内存状态记录下来,保存在一个文件中,这种行为就叫做 Core Dump(中文有的翻译成“核心转储”)。
嵌入式与Linux那些事
2023/02/13
2.4K0
内核转储的设置
gdb调试基础命令
LINUX默认不会打开程序崩溃时产生的core文件。使用`ulimit -c查看
doper
2022/09/26
1.8K0
推荐阅读
相关推荐
linux 下coredump相关
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档