GCC - 类型声明的确切位置

时间:2013-02-19 16:09:33

标签: c++ gcc crash segmentation-fault libuv

我有一个C ++代码,它依赖于libuv库(C代码)。由于段错误,它崩溃了。我缩小了问题范围:libuv使用struct stat中的<sys/stat.h>。如果我在我的代码中打印此结构的大小:

printf("struct stat size: %d\n", sizeof(struct stat));

它显示88.如果我在libuv库中打印它,它显示96.这是segfault的原因。我有点卡在这里。如何找到类型声明的确切位置?还有其他方法可以解决这个问题吗?

1 个答案:

答案 0 :(得分:1)

您可以使用cc -E xxx.c预处理来源,并在那里查找有问题的定义。预处理#file中的#linexxx.i指令将指向罪魁祸首的大致位置。或者只是#include <sys/stat.h>一开始(在库中的任何内容之前),编译器应该尖叫你重新定义struct; - )