您的位置:首页 > 运维架构 > Linux

core dump

2015-01-11 09:22 597 查看
http://blog.sina.com.cn/s/blog_67c294ca01014a4v.html

什么叫Core Dump ?--------------------------- 当一个进程要异常终止时,可以选择把进程的用户空间内存数据全部保存到磁盘上,文件名通常是core,这叫做Core Dump。进程异常终止通常是因为有Bug,比如非法内存访问导致段错误,事后可以用调试器检查core文件以查清错误原因,这叫做Post-mortemDebug。 一个进程允许产生多大的core文件取决于进程的Resource Limit(这个信息保存在PCB中)。默认是不允许产生core文件的,因为core文件中可能包含用户密码等敏感信息,不安全。 在开发调试阶段可以用ulimit命令改变这个限制,允许产生core文件。 开启Core Dump并测试---------------------------1. ulimit命令改变Shell进程的Resource Limit,允许core文件最大为1024K:
$ ulimit -c 1024

2. 写一个死循环程序:
#include <unistd.h>
int main(void)
{
while(1);
return 0;
}

3. 前台运行这个程序,然后在终端键入Ctrl-C或Ctrl-\:
$ ./a.out(按Ctrl-C)
$ ./a.out(按Ctrl-\)Quit (core dumped)
$ ls -l core*-rw------- 1 akaedu akaedu 147456 2008-11-05 23:40 core

ulimit命令改变了Shell进程的Resource Limit,a.out进程的PCB由Shell进程复制而来,所以也具有和Shell进程相同的Resource Limit值,这样就可以产生Core Dump了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  core dump linux