linux下coredump学习

参照 https://www.cnblogs.com/alantu2018/p/8468879.html

1、查看linux下coredump是否开启

在linux上coredump默认是关闭的,可以通过ulimit -c查看,如果输出为0,则代表coredump没有开启。

可以使用 ulimit -c unlimited开启,再用ulimit -c查看,结果为unlimited;

但这种操作只能对当前终端有效,想让coredump持久开启,需修改vim /etc/security/limits.conf文件为如下内容

再执行ulimit -c unlimited命令,打开新的终端再执行ulimit -c,结果显示为unlimited。

说明:命令中“unlimited”可以替换为core文件的大小,单位是KB;

2、 设置core文件的保存路径和名称:

cd  /proc/sys/kernel/

echo "/var/log/core/corefile-%e-%p-%t" > core_pattern (设置文件名称以及路径),/var/log/core文件不会自动生成需手动创建且创建时需注意权限。

生成core文件

3、查看core文件

缺少依赖debuginfo-install和glibc

4、安装debuginfo-install和glibc

查找/etc/yum.repos.d/CentOS-Debuginfo.repo文件,如果找到把文件中的enable=0改成enable=1,如果没有则新建

里面的内容为:

# CentOS-Debug.repo
#
# The mirror system uses the connecting IP address of the client and the
# update status of each mirror to pick mirrors that are updated to and
# geographically close to the client. You should use this for CentOS updates
# unless you are manually picking other mirrors.
#

# All debug packages from all the various CentOS-7 releases
# are merged into a single repo, split by BaseArch
#
# Note: packages in the debuginfo repo are currently not signed
#

[base-debuginfo]
name=CentOS-7 - Debuginfo
baseurl=http://debuginfo.centos.org/7/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-Debug-7
enabled=1

在查看/etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-Debug-7下内容(不同centos版本的内容不一样)

-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: GnuPG v2.0.22 (GNU/Linux)

mQENBFPE+90BCAChR7lmZuMhY3IXdMSwAFXwnJUMWJbwX1p2OR7XV/YLkKEZ+a0T
xnaEKwe9WDb7k0jUaMkeAu9ACtHKmnGrp5eCI7AJv5gF7GT1k615xyvCyGSCFTaw
VidWtXAK3RF1qKalNCj9sz8utjYVe8UXRcvHU20TlK/J1Z64Ths52UUI9kBWJN+i
QuruxEsMCyylmXeodUfQrFG+zifreCyQ0BYZEiH+6EtIzlPeCOjgjz2AWov19q/H
KXyUoiJpy40NWhEV8dazbpxrsiD5Tlc+bLjhpDTa7aPhhhUjJaSIEP3HBE01+0rz
nf00VrwQlsipRUYuv+8T5nlQ16l8IqknNLbDABEBAAG0PkNlbnRPUy03IERlYnVn
IChDZW50T1MtNyBEZWJ1Z2luZm8gUlBNUykgPHNlY3VyaXR5QGNlbnRvcy5vcmc+
iQE+BBMBAgAoBQJTxPvdAhsDBQkcMgSABgsJCAcDAgYVCAIJCgsEFgIDAQIeAQIX
gAAKCRDQ8lo8tnksOWRFB/9PzxN2l6KSLWHPJX8OD4B7npVoouM+mscK4oHjXSRI
y2u2O2tT2hmcQzan29dahk1hsnyLdQlNSo642rV4ykbOdW9iszCLrw4ZwuQmpm5c
qeHMUPntwz9MFvn9memh85kZuxdFnAHmaxmqNl+5LEPNmmWyfX7TjGyG1Oi2xd7o
yT7lKnVXyLdY8E62RKTuQ/BNnAFpmUVgLbeKVq6qggZYgPOLt7GpLfpCm63aDZoX
OzJM75RqCtiK0n1BSBdUiVQ8+2XXYqRejFOEZa5LrLNDLFfqYA0YgpN/ournTKWt
QLHycvaoJrXZzF2EQjLiU2hHx8vS3bTR0lZsv8tUBHXG
=2CYo
-----END PGP PUBLIC KEY BLOCK-----

这些都ok了,就可以使用yum install yum-utils命令了。

最后就是用debuginfo-install命令缺啥补啥了。

原文地址:https://www.cnblogs.com/mylsoft/p/12208625.html

时间: 2024-08-29 13:13:43

linux下coredump学习的相关文章

linux下coredump的产生及调试方法

什么是coredump 通常情况下coredmp包括了程序执行时的内存,寄存器状态,堆栈指针,内存管理信息等.能够理解为把程序工作的当前状态存储成一个文件.很多程序和操作系统出错时会自己主动生成一个core文件. 怎样使用coredump coredump能够用在非常多场合,使用Linux,或者solaris的人可能都有过这样的经历,系统在跑一些压力測试或者系统负载一大的话,系统就hang住了或者干脆system panic.这时唯一能帮助你分析和解决这个问题的就是coredump了. 如今非常

Linux下编程学习一

本篇主要记录一些在学习LINUX下编程时,, C和C++语言的一些基础的常识, 一. 函数指针 void MyFun(int x); 函数声明 void (*FunP)(int ); 函数指针声明 下面是C和C++中的指针定义  int (*pt2Function)(float, char, char) = NULL; // C普通函数指针 int (TMyClass::*pt2Member)(float, char, char) = NULL; // C++中指向静态函数的指针 int (TM

Linux下git学习笔记(一)

我是跟着廖雪峰大神的博客学习git的,他讲的非常容易懂 (http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000),然后自己跟着学的时候并不是很顺利,向github提交代码的时候老是报错,不过最后google很久之后给解决了. 先回顾下今天学的吧 一:在Linux上安装Git sudo apt-get install git 因为Git是分布式版本控制系统,所以,每个机器都必须自报家门:

Linux下Python学习笔记 1:数据类型

一.开发环境 开发Python的环境选择很多,windows.Linux.MacOs都可以,除了Windows需要在Python官网上下载安装包,并配置环境变量.在Linux和MacOs上都是自带Python的,关于Python的版本大多都是2.7.* 本文选择了Ubuntu环境来学习Python,主要原因是为了顺便熟悉Linux的环境与命令,开发工具选择的是Vim,当然更多其他的选择有Eclipse.Sublime.pycharm等等,根据个人喜好选择即可, 另:文章部分内容来自Imooc和5

Linux下防火墙学习

1.防火墙浅解iptables最大的优点是可以配置有状态的防火墙,带有连接跟踪的防火墙就称为带有状态机制的防火墙,相比非状态防火墙而言更安全,因为可以编写更缜密的安全过滤策略.有状态的防火墙能够指定并记住为发送或接收信息包所建立的连接状态,防火墙可以从信息包的连接跟踪状态获得该信息.在决定过滤新的信息包时,防火墙所使用的这些状态信息可以增加其效率和速度.有四种有效状态,分别为:ESTABLISHED.INVALID.NEW和RELATED.ESTABLISHED:指该信息包属于已建立的连接,该连

linux下的学习之路下的小困难

centos下源码安装python3wget --no-check-certificate https://www.python.org/ftp/python/3.6.2/Python-3.6.2.tgzpython3的环境依赖安装yum -y install xz tar gcc make tk-devel wget sqlite-devel zlib-devel readline-devel openssl-devel curl-devel tk-devel gdbm-devel xz-de

Linux下Python学习笔记 2:条件判断、循环

一.条件判断 if 语句 比如,输入用户年龄,根据年龄打印不同的内容,在Python程序中,可以用if语句实现: 注意: Python代码的缩进规则.具有相同缩进的代码被视为代码块,上面的3行 print 语句就构成一个代码块(但不包括第4行的print).如果 if 语句判断为 True,就会执行这个代码块. 缩进请严格按照Python的习惯写法:4个空格,不要使用Tab,更不要混合Tab和空格,否则很容易造成因为缩进引起的语法错误. 在ubuntu下的vim中需要设置tab默认为4个空格,可

linux下Makefile学习

1. 基本概念 关于程序的编译和链接: 编译 链接源码------中间代码------可执行文件.c .o编译过程中,主要检查语法是否正确,函数与变量声明是否正确,若函数未被声明,编译器会给出警告,但可以生成obj文件:链接时,主要链接函数和全局变量,负责管理中间目标文件,寻找函数的实现,若找不着,报链接错误码. 大多数情况下,由于源文件较多,编译生成的中间目标文件太多,在链接时要指出的中间目标文件太多,这对编译很不方便,所以可给中间目标文件打个包,window下称为库文件,即.lib文件:UN

linux下coredump的使用

临时性打开coredump echo "core.%e.%p" > /proc/sys/kernel/core_pattern ulimit  -c unlimited %% 单个%字符 %p 所dump进程的进程ID %u 所dump进程的实际用户ID %g 所dump进程的实际组ID %s 导致本次core dump的信号 %t core dump的时间 (由1970年1月1日计起的秒数) %h 主机名 %e 程序文件名 永久打开coredump /etc/rc.local中