运行我的c代码时,我不断收到错误消息 分段错误(核心转储)
这就是我收到的全部内容。有没有办法从这个错误中看到更多? I.E.通过c代码顶部的c库?
答案 0 :(得分:2)
您可以使用调试器查找导致此错误的行。这应该足以解决您的问题。 Segmentation fault通常是由访问不可用的内存位置引起的。例如,请考虑以下代码:
curl -i -X POST -H 'Content-type: text/uri-list' -d 'localhost:8080/api/player/1' http://localhost:8080/api/player/0/friends
当您在编写循环时出错时,通常会发生这种情况。
有关如何使用GDB调试程序的示例,请参阅this question:
首先编译你的程序:
int array[5];
array[2] = 10; // OK
array[20] = 10; // Segmentation fault
然后使用gdb:
gcc program.c -g -o program
答案 1 :(得分:1)
消息core dumped
表示已创建核心文件。核心文件是一个文件,其中包含与刚刚崩溃的进程相关的内存的所有内容(核心转储通常在应用程序崩溃时创建)。
你可以做两件事:你可以通过在发生这种情况时查看你的程序来查找原因,或者你可以调查核心转储,以便了解哪种错误导致了这种情况。在大多数情况下,可以通过从核心转储中读取调用堆栈来完成此操作。
核心转储可以位于任何地方,我知道它是在正在运行的进程的运行时目录中创建的情况,我知道核心转储自动移动到/var/core
的情况。关于阅读核心转储的应用程序,我使用过dbx
和gdb
,但我认为ladebug
也可能有用。
我知道,我提出了许多新问题,但我希望您现在知道在哪个方向寻找更多信息。