0

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

==2745== Memcheck,内存错误检测器
==2745== 版权所有 (C) 2002-2010 和 GNU GPL,由 Julian Seward 等人提供。
==2745== 使用 Valgrind-3.6.0 和 LibVEX;使用 -h 重新运行以获取版权信息
==2745== 命令:./HSFramework
==2745==
==2745== 大小为 8 的无效写入
==2745== 在 0x3B81C097C0:do_lookup_x(在 /lib64/ld-2.12.so 中)
==2745== 由 0x1C31032D: ???
==2745== 由 0x3B81C09E19:_dl_lookup_symbol_x(在 /lib64/ld-2.12.so 中)
==2745== 地址 0x7feffee78 在线程 1 的堆栈上
==2745==

平台:Linux 2.6.32-220.el6.x86_64 x86_64 x86_64 x86_64 GNU/Linux

此错误报告中没有关于我的代码的线索。我不知道这个错误报告。
什么原因会导致这个错误?

4

2 回答 2

0

这意味着该do_lookup_x函数执行了无效的写访问。该函数是运行时库的一部分(不太可能是问题的根源)。我会联系 HSFramework 的作者,看看他们是否可以像你一样通过运行 valgrind 来解决这个问题

于 2013-02-22T07:12:26.113 回答
0

此错误意味着您在 do_lookup_x 中遇到缓冲区溢出,如果您获得了它的源代码,请查看或与我们分享。

http://valgrind.org/docs/manual/quick-start.html

于 2013-02-22T07:16:06.083 回答