标签:style blog http color 使用 io strong 文件
什么是Core Dump?
Core的意思是内存, Dump的意思是扔出来, 堆出来.开发和使用Unix程序时, 有时程序莫名其妙的down了, 却没有任何的提示(有时候会提示core dumped). 这时候可以查看一下有没有形如core.进程号的文件生成, 这个文件便是操作系统把程序down掉时的内存内容扔出来生成的, 它可以做为调试程序的参考.
core dump又叫核心转储, 当程序运行过程中发生异常, 程序异常退出时, 由操作系统把程序当前的内存状况存储在一个core文件中, 叫core dump。
为什么没有core文件生成呢?
有时候程序down了, 但是core文件却没有生成. core文件的生成跟你当前系统的环境设置有关系, 可以用下面的语句设置一下, 然后再运行程序便成生成core文件.
ulimit -c unlimited
core文件生成的位置一般于运行程序的路径相同, 文件名一般为core.进程号
当ulimit -c出来的如果为0,说明关闭core文件输出
当获得了core文件以后,就可以利用命令gdb进行查找,参数一是应用程序的名称,参数二是core文件。
例子:
源代码: #include <stdio.h> static void sub(void); int main(void) { sub(); return 0; } static void sub(void) { int *p = NULL; /* derefernce a null pointer, expect core dump. */ printf("%d", *p); } Makefile: foo:foo.o gcc -o foo foo.o foo.o:foo.c gcc -Wall -g -c foo.c clean: rm -rf foo.o foo
运行foo之后出现core.14263,分析该core文件:
【参考文献】
1、http://www.cnblogs.com/lbsx/archive/2010/10/09/1846535.html
标签:style blog http color 使用 io strong 文件
原文地址:http://www.cnblogs.com/gsblog/p/3895613.html