Linux core文件详解

来源:互联网 发布:家具制图软件 编辑:程序博客网 时间:2024/06/07 09:51

1、什么是linux core文件

在一个程序崩溃是,它一般会在特定目录(一般是当前目录下)生成一个core文件。core文件仅仅是一个内存映像(同时加上调试信息),主要用来程序调试。

有人可能要问了,gdb不是可以直接调试吗?“加上断点,想怎么调怎么调”。这话倒是不错,但是假如有个几万行的代码,只给出一个segment fault错误,怎么调?不能进去一行一行的调试吧。core文件就能很好的解决这个问题,调试core文件,使用bt或where命令,可以直接显示程序出错的地方,以及调用该函数的其他函数。

2、怎样产生core文件

直接写一个有错误的程序,运行即可。示例程序如下:

#include<stdio.h>void f(float x, float y){    printf("%f\n", x/y);}int main(int argc, char *argv[]){    f(5,0);        return 0;}


直接运行怎么没有呢?别急,先看看你的系统设置,使用ulimit 命令(这里有介绍),点击打开链接

可以看到core大小为0,所以不能生成core文件,将core文件大小变大就可以,ulimit -c unlimited,在运行如下图:




3、怎样调试

为了能够调试编译程序时,必须加上编译信息。使用命令gdb -c core;在使用where或者bt就可以显示出程序出错的地方。如下图:




原创粉丝点击