设置core文件大小

##查看core文件
列出所有资源的限制: ulimit -a

[root@localhost ~]#  ulimit -a
core file size          (blocks, -c) unlimited
data seg size           (kbytes, -d) unlimited
scheduling priority             (-e) 0
file size               (blocks, -f) unlimited
pending signals                 (-i) 15027
max locked memory       (kbytes, -l) 64
max memory size         (kbytes, -m) unlimited
open files                      (-n) 1024
pipe size            (512 bytes, -p) 8
POSIX message queues     (bytes, -q) 819200
real-time priority              (-r) 0
stack size              (kbytes, -s) 8192
cpu time               (seconds, -t) unlimited
max user processes              (-u) 15027
virtual memory          (kbytes, -v) unlimited
file locks                      (-x) unlimited

unlimited:core文件的大小不受限制
0:程序出错时不会产生core文件
1024:代表1024k,core文件超出该大小就不能生成了

设置core文件

ulimit -c fileSize

设置core文件的名称和文件路径

  • 修改文件命令
    #vim /etc/profile,然后进入编辑模式,在profile文件中加入
    ulimit -c unlimited
  • 指定生成文件的路径和名字
    执行# vim /etc/sysctl.conf,进入编辑模式,加入下面两行
    kernel.core_pattern=/var/core/core_%e_%p
    kernel.core_uses_pid=0

在var下创建core目录,用# sysctl –p /etc/sysctl.conf,是修改马上生效。

测试

 kill -s SIGSEGV $$ ,执行命令,可以看到/var/core下生成了一个core文件

遇到的问题

1、修改后为生效
重新启动服务器
2、gdb调试提示:Missing separate debuginfos, use: debuginfo-install coreutils-8.22-24.el7.x86_64
原因:使用yum install glibc安装,发现只是安装了一些基本库,不包含 glibc-debuginfo
解决:1、修改“/etc/yum.repos.d/CentOS-Debuginfo.repo”文件的enable=1
2、 执行:debuginfo-install coreutils-8.22-24.el7.x86_64

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐