当系统中的一些程序在遇到一些错误以及crash时,系统会自动产生corefile记录crash时刻系统信息包括内存和寄存器信息,用以程序员日后debug时可以使用。
这些错误包括断错误,非法指令,总线错误和用户自己生成的退出信号等等。
一般的,core file会在当前文件夹中存放。
core file有时可能在你发生错误时,并没有出现在你的当前文件夹中,发生这种情况的原因有两个,一个是当前终端被设置为不能弹出core file;
另一种则是core file被制定了路径。
对于前者,我们可以使用ulimit这条命令对core file文件的大小进行设定。一般默认情况下,core file的大小被设置为了0,这样系统就不dump出core file了。
这时用如下命令进行设置:
ulimit -c unlimited
这样便把core file的大小设置为了无限大,同时也可以使用数字来替代unlimited,对core file的上限值做更精确的设定。
除了可以设置core file的大小之外,还可以对corefile的名称进行一些规定。
这种设置是对/proc/sys/kernel/core_pattern和/proc/sys/kernel/core_uses_pid这两个文件进行修改。
改动这两个文件的方法是:
echo <pattern> > /proc/sys/kernel/core_pattern
如直接在sysctl.conf中设置如下
kernel.core_pattern = /home/corefiles/core-%e-%p-%t
echo <"0"/"1"> > /proc/sys/kernel/core_uses_pid
并且注意,只有超级用户可以修改这两个文件。
core_pattern接受的是core file名称的pattern,它包含任何字符串,并且用%作为转移符号生成一些标识符,为core file名称加入特殊含义。已定义的标识符有如下这些:
%%: 相当于%
%p: 相当于<pid>
%u: 相当于<uid>
%g: 相当于<gid>
%s: 相当于导致dump的信号的数字
%t: 相当于dump的时间
%h: 相当于hostname
%e: 相当于执行文件的名称
除了这些标识符之外,还规定:
1.末尾的单个%可以直接去除。
2.%加上除上述之外的任何字符,%和该字符都被去除。
3.所有其他字符都作为一般字符加入名称中。
4.core file的名称最大值为64字节(包括\0)。
5.core_pattern中的默认pattern为core。
6.为了保持兼容性,通过设置core_uses_pid,可以在core file名称的末尾加上%p。
7.pattern中可以包含路径信息。
core文件的设置
/proc/sys/kernel/core_uses_pid可以控制core文件的问价名是否添加PID作为扩展,文件的内容为1,
标识添加PID作为扩展,生成的core文件格式为core.XXXX;为0则表示生成的core文件统一命名为core;
本文来源:https://www.wddqw.com/doc/f86ad7957c1cfad6195fa7e3.html
正在阅读:
Core File的生成和命名01-01
不认识单词怎么学英语怎么说01-01
读詹天佑有感01-01
缓刑社区矫正人员思想汇报(四篇)200字01-01
厕所的文明标语:厕所一冲刷,好运自然来!01-01
2022年关于开心的植树节的日记300字01-01
戛然的拼音01-01
规则:男子乱说话惹了老婆不开心,还不自知,真缺心眼01-01
一人三岗的好处实施步骤01-01