这个文件是发生故障的那个程序的内存影像。至于错误的原因倒不
一定是核心错误,常见的错误是非法指针。理论上说你可以用gdb
等调试程序debug但是如果该程序在编译没有选debug支持,又没有
map文件,调试起来是很困难的。通常将其删除了事。
因为这是个二进制文件,通常终端用某些二进制码做一些控制动作
例如改变显示模式。我们通常的xterm等还有Linux控制台都仿真
DEC-VT100的控制码,当你cat core时会碰到控制码将显示模式改
变,你因而看到乱码。
当出现这种情况时你打入reset命令通常能恢复正常显示。
min
----
如果这个程序是你自己写的,而且在编译是加了调试信息(比如加了参数-ggdb),
那么你可以用gdb your-program core来调试它。以前我写xdict的时候就碰到
过,原因果然是指针的问题:我自以为是释放了某个指针,没想到这个指针应
该由Qt来释放。
我在用qps的时候还碰到过生成巨大的core,不知动了什么,硬盘响个不停,回
头一看,core文件有几十兆之巨,把我的硬盘灌满了!一怒之下开始想办法限制
Core Dump:在tcsh/zsh里用limit coredumpsize 0就可以,不知道在Bash里怎么设?
另外在上海Linux俱乐部中的FAQ里提到了一个问题:
Q1:为啥装了REDHAT5后在用who指令看其他用户的时候会出现core dump,用w
or finger却不会?
A1:检查你的/var/log下,wtmp utmp这两个记录文件太大了.解决方法是cp /dev/null
wtmp
cp /dev/null utmp清空即可.如果做正规服务可能需要备份这两个文件备查。
本文转自中文Linux论坛