分类: C/C++
2008-07-17 15:33:48
/proc/sys/kernel/core_uses_pid可以控制产生的core文件的文件名中是否添加pid作为扩展,如果添加则文件内容为1,否则为0
proc/sys/kernel/core_pattern可以设置格式化的core文件保存位置或文件名,比如原来文件内容是core-%e
可以这样修改:
echo "/corefile/core-%e-%p-%t" > core_pattern
将会控制所产生的core文件会存放到/corefile目录下,产生的文件名为core-命令名-pid-时间戳
以下是参数列表:
%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 添加命令名
4. 使用core文件
在core文件所在目录下键入:
gdb -c core
它会启动GNU的调试器,来调试core文件,并且会显示生成此core文件的程序名,中止此程序的信号等等
如果你已经知道是由什么程序生成此core文件的,比如./a.out崩溃了生成core.12345,那么用此指令调试:
gdb -c core ./a.out