1

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

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

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

4

1 回答 1

1

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

于 2013-02-19T16:24:53.147 回答