C++ Valgrind报告写入错误?为什么?

C++ Valgrind报告写入错误?为什么?,c++,valgrind,C++,Valgrind,运行Valgrind的memcheck时,Valgrind偶尔会报告如下错误: ==2745== Memcheck, a memory error detector ==2745== Copyright (C) 2002-2010, and GNU GPL'd, by Julian Seward et al. ==2745== Using Valgrind-3.6.0 and LibVEX; rerun with -h for copyright info ==2745== Command: .

运行Valgrind的memcheck时,Valgrind偶尔会报告如下错误:

==2745== Memcheck, a memory error detector ==2745== Copyright (C) 2002-2010, and GNU GPL'd, by Julian Seward et al. ==2745== Using Valgrind-3.6.0 and LibVEX; rerun with -h for copyright info ==2745== Command: ./HSFramework ==2745== ==2745== Invalid write of size 8 ==2745== at 0x3B81C097C0: do_lookup_x (in /lib64/ld-2.12.so) ==2745== by 0x1C31032D: ??? ==2745== by 0x3B81C09E19: _dl_lookup_symbol_x (in /lib64/ld-2.12.so) ==2745== Address 0x7feffee78 is on thread 1's stack ==2745== platform: Linux 2.6.32-220.el6.x86_64 x86_64 x86_64 x86_64 GNU/Linux ==2745==Memcheck,内存错误检测器 ==2745==2002-2010年版权(C)和GNU GPL'd,朱利安·苏厄德等人。 ==2745==使用Valgrind-3.6.0和LibVEX;使用-h重新运行以获取版权信息 ==2745==命令:./HSFramework ==2745== ==2745==大小为8的无效写入 ==2745==at 0x3B81C097C0:do_lookup_x(in/lib64/ld-2.12.so) ==2745==0x1C31032D:??? ==2745==0x3B81C09E19:_dl_lookup_symbol_x(in/lib64/ld-2.12.so) ==2745==地址0x7feffee78位于线程1的堆栈上 ==2745== 平台:Linux 2.6.32-220.el6.x86_64 x86_64 x86_64 x86_64 x86_64 GNU/Linux 此错误报告中没有关于我的代码的线索。 我不知道这个错误报告。

什么原因会导致此错误?

这意味着
do\u lookup\u x
函数执行了无效的写入访问。该功能是问题的一部分(不可能是问题的根源)。我会联系HSFramework的作者,看看他们是否可以像您一样运行valgrind来解决这个问题。这个错误意味着您在do_lookup_x中遇到了缓冲区溢出,如果您得到了它的源代码,请查看或与我们共享


您能给我们看看您的代码吗?您的代码没有任何线索吗?你能在多大程度上把代码配对,并且仍然产生这个错误,频率是多少?valgrind通常不会突发奇想报告错误,通常是有原因的。我已经找到了关于我的代码的线索。非常感谢你的帮助。有一个错误在堆栈中分配了更多内存,导致堆栈溢出。非常感谢你的帮助。我已经解决了这个问题。我在堆中分配的内存比堆栈中的内存大。非常感谢您的帮助。