每次,我的应用程序崩溃核心转储文件不会生成。 我记得几天前,在另一台服务器上生成的。 我正在使用bash运行应用程序,如下所示: #!/bin/bash ulimit -c unlimited while true; do ./server; done 正如你所看到的,我正在使用ulimit -c unlimited ,这是非常重要的,如果我想生成一个核心转储,但它仍然不会生成它,当我有一个分段错误。 我怎样才能使它工作?
我写这个代码来读取3个文件,TM是matrix的大小,LER是一个数组的行数,并从上一个值定义(ler / 2)* 2的非方阵 然后…代码读取一个关系的文件,都是数字,并分配给C [ler]。 然后… C [ler]被分配给B [ler / 2] [2]。 B [ler / 2] [2]中每行的坐标分配给a和b。 a和b是matrixA [tm] [tm]的行和列在哪里加1。 我的代码崩溃,我不知道错误是什么。 当我尝试编译它时,编译器gcc -g -o MatSim MatSim.cpp提示: /usr/include/c++/4.6/iostream:75: undefined reference to `std::ios_base::Init::Init()' /usr/include/c++/4.6/iostream:75: undefined reference to `std::ios_base::Init::~Init()' collect2: ld returned 1 exit status 另外,当我尝试编译它,编译器f77 -o MatSim MatSim.cpp提示: /tmp/cc6ewlkf.o: In function `__static_initialization_and_destruction_0(int, int)': MatSim.cpp:(.text+0x17ad4a): undefined reference […]
什么是SEGV_MAPERR ,为什么总是想出SIGSEGV ?
在Mac OS X上,如果我将SIGQUIT发送到我的C程序,它会终止,但是没有核心转储文件。 你是否必须在Mac OS X上手动启用核心转储(如何?),还是写入其他地方而不是工作目录?
我想强制在我的C ++应用程序的特定位置的核心转储。 我知道我可以做这样的事情: int * crash = NULL; *crash = 1; 但是我想知道是否有更清洁的方法? 顺便说一句,我正在使用Linux。
当运行一个C程序时,它说“(核心转储)”,但在当前path下我看不到任何文件。 我已经设定和validation了限制: ulimit -c unlimited ulimit -a 我也试图find名为“核心”的文件,但没有得到核心转储文件? 任何帮助,我的核心文件在哪里?
在分析核心转储文件时,我需要检查哪些内容? 请从头开始告诉我。
我的程序像这样操作: exe -p param1 -i param2 -o param3 它崩溃并生成一个核心转储文件core.pid 我想通过分析核心转储文件 gdb ./exe -p param1 -i param2 -o param3 core.pid 但gdb认识到exe的参数作为gdb的input。 如何在这种情况下分析核心转储文件?
我在Linux中有一个进程出现分段错误的进程。 如何告诉它在失败时生成核心转储?