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命令进行相关调试了。
近期评论