7

我得到了奇怪的段错误,似乎来自我程序之外的某个地方......无论如何都没有明确表示。我在两个数组上调用“strcmp”......两个数组都存储在相同类型的结构中。我得到了一个点符号和一个通过“->”取消引用:

int name = strcmp(one.name, two->name);

它编译得很好,但是当我运行它时,我得到了段错误。我已经尝试使用 GDB 对其进行跟踪,但是当我在我认为应该发生的位置之前放置断点时,它无论如何都会出现故障。我越来越:

Program received signal SIGSEGV, Segmentation fault.
__strcmp_ia32 () at ../sysdeps/i386/i686/multiarch/../strcmp.S:40
40  ../sysdeps/i386/i686/multiarch/../strcmp.S: No such file or directory.
    in ../sysdeps/i386/i686/multiarch/../strcmp.S

FML。建议?谢谢!

4

1 回答 1

5

我的建议:用 -g 编译它并通过 valgrind 运行它。

于 2012-05-17T02:50:21.060 回答