Linux Core文件显示配置

1.临时配置

①查看生成core文件的开关是否开启,输入命令

 ulimit -a

第一行代表core文件大小为0,表示没有开启core文件。

②临时开启core文件

如果需要临时开启core文件,则使用ulimit -c xxx来制定,ulimit -c unlimited 表示无限,ulimit -c +数值,表示core文件限制为多少k,如 ulimit -c 100 ,代表限制core文件大小为100K,操作方法如下图所示:

不过这样生成的core文件仅在当前终端有效,如果需要所有系统程序都生成core文件,需要配置永久生成core文件。

2.配置永久core文件

①修改配置文件

使用root用户登录,并修改/etc/profile,这样在linux每次启动的时候就会自动加载其中的内容,所以也是重启后生效。

su -
vi /etc/profile
ulimit -c 100000
:wq!

相当于允许生成100000k的单个core文件。

②指定core文件生成地址和文件名

su -
vi /etc/sysctl.conf
kernel.core_pattern=/home/ghost/core/core_%e_%p_%t #ghost是当前用户目录,可以根据你的需要定义目录地址
kernel.core_uses_pid=0
:wq!
sysctl -p /etc/sysctl.conf   #立即生效

core_pattern的命名参数如下:

%c 转储文件的大小上限

%e 所dump的文件名

%g 所dump的进程的实际组ID

%h 主机名

%p 所dump的进程PID

%s 导致本次coredump的信号

%t 转储时刻(由1970年1月1日起计的秒数)

%u 所dump进程的实际用户ID

3.测试配置是否生效

执行命令 

kill -s SIGSEGV $$ 

查看core文件目录

ll /home/ghost/core

可以看到/home/ghost/core下生成了一个core文件,然后就可以使用gdb命令进行相关调试了。

发表评论

Your email address will not be published.