ubuntu上产生coredump

发布时间 2023-06-04 16:09:29作者: woodx

之前按书里的教程老是整不出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