1,设置系统级的core file size:在/etc/profile文件中查找ulimit,将这行注释掉,然后加上一行“ulimit -S -c unlimited”。(ulimit -c查看,默认为0)
或者修改文件/etc/security/limits.conf
2,查看core文件的命名格式:
$ cat /proc/sys/kernel/core_pattern
core
$ cat /proc/sys/kernel/core_uses_pid
0
说明:core文件的默认名为“core”,生成在当前目录下或者根目录/下。
3,修改core文件的命名格式及放置目录:在/etc/sysctl.conf文件中加上一行“kernel.core_pattern=/tmp/core-%e-%p-%t
”,然后执行“sysctl -p /etc/sysctl.conf”即可。(表示命名格式为core-exe-pid-time,放在/tmp/目录下)
4,在/etc/profile中增加一句:sysctl -p /etc/sysctl.conf
可以用下面的小程序做实验:
/* file: main.c */
int main()
{
int *p = 0;
*p = 1;
return 0;
}
gcc main.c -g -o main
ulimit -n设置:
vi /etc/security/limits.conf
添加:
* soft nofile 65535
* hard nofile 65535