如何在Linux中生成核心转储文件?

时间:2013-12-19 21:21:30

标签: linux gcc gdb

我正在尝试使用Linux中的以下程序生成核心转储文件。

#include <stdio.h>
#include<iostream>
using namespace std;

int main()
{
     char *temp ="ABCDE";
     int i =0;
     temp[3] ='F';
     for (i =0; i <5; i++)
         printf("% Value is %c\n", temp[i]);

     cout<<"Done"<<endl;
     return 0;
}

我将上述源代码保存为sample.cpp,并使用以下命令构建文件。

     g++ sample.cpp -g -o test

运行输出文件“test”,产生错误“Segmentation fault”。但它没有生成核心转储文件。

    ./test

我审核了this。谢谢你的帮助。

2 个答案:

答案 0 :(得分:2)

生成核心转储文件并不总是启用它。尝试使用ulimit命令。

答案 1 :(得分:0)

某些系统默认配置为不写入核心文件,因为这些文件可能很大并且会迅速填满系统上的可用磁盘空间。在GNU Bash shell中,命令ulimit -c控制核心文件的最大大小。如果大小限制为零,则不会生成任何核心文件。可以通过键入以下命令来显示当前大小限制:

$ ulimit -c 0 如上所示,如果结果为零,则可以使用以下命令将其增加以允许写入任何大小的核心文件:(17)

$ ulimit -c无限制