C++ 分段错误:“…”;。。。没有这样的文件或目录;

C++ 分段错误:“…”;。。。没有这样的文件或目录;,c++,segmentation-fault,cstring,C++,Segmentation Fault,Cstring,我得到了奇怪的seg错误,似乎是来自某个地方,而不是在我的程序…不明确无论如何。我在两个阵列上呼叫“strcmp”。。。两个数组都存储在同一类型的结构中。我用点表示法得到一个,用“->”解引用得到一个: 它编译得很好,但是当我运行它时,我得到了seg错误。我试着用GDB跟踪它,但当我在我认为应该发生的地方之前设置断点时,它仍然会出现故障。我得到: Program received signal SIGSEGV, Segmentation fault. __strcmp_ia32 () at ..

我得到了奇怪的seg错误,似乎是来自某个地方,而不是在我的程序…不明确无论如何。我在两个阵列上呼叫“strcmp”。。。两个数组都存储在同一类型的结构中。我用点表示法得到一个,用“->”解引用得到一个:

它编译得很好,但是当我运行它时,我得到了seg错误。我试着用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。建议?谢谢

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

当它在gdb中出现故障时,您是否尝试过回溯?调用时,
one.name
two
two->name
的值是多少?您遇到了一个分段错误,
strcmp
的源代码在您的环境中不存在,seg故障发生后,系统尝试查找时。源代码不需要存在,它是一个标准的库函数。因此,问题是您正在其他地方覆盖内存边界。使用valgrind或内存分析工具运行程序时,应该给出确切的位置详细信息。@Mud所做的注释将通过梳理返回,我注释掉了一些内存我正在做的清理。。。现在seg故障发生在更清晰的位置。在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