从 linux 命令行执行时出现分段错误

Segmentation fault when executed from linux command line

我的代码可以编译并且 运行 在我的 IDE 中没问题。 但是,当我使用 gcc 编译然后 运行 我的 a.out 文件时,它说 Segmentation fault (core dumped).

(编辑以包含我的代码)

在 main.c 我已经注释掉了我所有的代码,它仍然会导致段错误。

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <string.h>
#include <time.h>
#include <pthread.h>


#include "BmpProcessor.h"
#include "PixelProcessor.h"
#include "PpmProcessor.h"
#include "debug.h"

#define THREAD_COUNT 8;

int main(int argc, char *argv[]) {

/** commented out all of my code */
    
    return 0;
}

知道为什么吗? None 我包含的其他文件有一个主要方法。

调试细节

gcc -g -Wall -pedantic -o PurdyImageProcessor PurdyImageProcessor.c BmpProcessor.c PpmProcessor.c PixelProcessor.c -lm -pthread
PixelProcessor.c: In function ‘boxBlurMultithreading’:
PixelProcessor.c:437:1: warning: control reaches end of non-void function [-Wreturn-type]
 }
 ^
PixelProcessor.c: In function ‘cheesifyMultithreading’:
PixelProcessor.c:487:1: warning: control reaches end of non-void function [-Wreturn-type]
 }

我们需要更多信息。请执行以下操作:

  1. 使用“-g”重新编译,以获得调试信息。包括“-Wall -pedantic”以获得额外的编译器警告

    示例:gcc -g -Wall -pedantic -o myprog myprog.c

  2. 用你的“gcc”命令更新你的post,你得到的编译器警告。

  3. 运行 你的程序。如果还是崩溃,用gdb进一步分析:

    示例:gdb ./myprog 输入“r”执行。崩溃后键入“bt”以获取堆栈跟踪。 Copy/paste 堆栈跟踪到您的 post。

这里有几个有用的链接: