ubuntu上产生coredump
之前按书里的教程老是整不出coredump,都快把我整郁闷了。在千辛万苦之下才找到一篇博客适用于这种情况。记录一下。
一般情况下:
设置coredump文件的最大值:
输入命令: $ulimit -c unlimited
在/proc/sys/kernel/core_pattern中设置格式化的core文件保存位置或者文件名
在相对路径下存储
$echo "core-%e-%p-%t" > /proc/sys/kernel/core_pattern
!!!注意只能用上面这条命令去修改/proc/sys下的文件,因为用vim regedit等会报错=
可以添加的参数列表:
%p - insert pid into filename 添加pid
%u - insert current uid into filename 添加当前uid
%g - insert current gid into filename 添加当前gid
%s - insert signal that caused the coredump into the filename 添加导致产生core的信号
%t - insert UNIX time that the coredump occurred into filename 添加core文件生成时的unix时间
%h - insert hostname where the coredump happened into filename 添加主机名
%e - insert coredumping executable name into filename 添加命令名
特殊情况:
目录proc文件系统是一个伪文件系统,以文件系统的方式为访问系统内核数据的操作提供接口。/proc目录的内容为系统启动时自动生成,某些文件可改,某些文件不可改。比如可以通过修改proc的文件微调参数内核参数。使用vi可能无法成功编辑/proc/sys/kenel/core_pattern, 只能使用echo命令或者修改sysctl修改。有时候echo命令没有效果,就必须使用sysctl命令:
相对路径存储
$ sysctl -w "kernel.core_pattern=core-%e-%p-%t" >/dev/null
$ sysctl -w "kernel.core_uses_pid=0" >/dev/null
参考:https://www.cnblogs.com/zhanggaofeng/p/11945972.html