程序员开发时经常遇到程序core掉,这是可以通过gdb调试,可是如果ulimit -c的值是0时,系统是不会产生core文件的。

可以通过如下方法修改

超户权限下修改/etc/security/limits.conf

加入如下两行

jiayuehua soft core 100000 #二进制程序小于100m时产生core,一般linux程序都不会超过该值。
root hard core unlimited

这里假定用户名为jiayuehua 。

这时,重启机器,测试下,在C代码中调用abort函数,可以看到已经正确的产生了core文件。以后便可以方便的查找运行时错误了。