阿里云集群CentOS系统,运行程序出错时会产生一些core.xxx文件 image.png 这些文件是一个内存映象(同时加上调试信息),主要是用来调试的。

ulimit命令

参数 说明
-H 设置硬件资源限制
-S 设置软件资源限制
-a 显示当前所有的资源限制
-c size 设置core文件的最大值.单位:blocks
-d size 设置数据段的最大值.单位:kbytes
-f size 设置创建文件的最大值.单位:blocks
-l size 设置在内存中锁定进程的最大值.单位:kbytes
-m size 设置可以使用的常驻内存的最大值.单位:kbytes
-n size 设置内核可以同时打开的文件描述符的最大值.单位:n
-p size 设置管道缓冲区的最大值.单位:kbytes
-s size 设置堆栈的最大值.单位:kbytes
-t size 设置CPU使用时间的最大上限.单位:seconds
-v size 设置虚拟内存的最大值.单位:kbytes

开启或关闭core文件的生成

  1. ulimit -c 0 # 禁止生成core文件
  2. ulimit -c 1024 # 允许生成core文件的最大size(kb)
  3. ulimit -c unlimited # 不限制core文件大小
  4. ulimit -a # 查看配置

以上设置仅对当前终端生效,要想永久生效,可配置 /etc/profile 文件

  1. echo 'ulimit -S -c 0 > /dev/null 2>&1' >> /etc/profile

通过core文件查看调试信息

  1. gdb --core core.xxx

image.png