2011-10-24 27 views
7

为了在基于Liv555库的应用程序中搜索内存泄漏,我尝试使用valgrind运行它。它导致以下错误:Valgrind未处理的指令字节错误

vex amd64->IR: unhandled instruction bytes: 0xC5 0xF9 0x57 0xC0 0xC5 0xFA 0x10 0x15 

另一台计算机上运行它不会导致这个错误(它运行得很好),所以我希望这是一些库版本的结果。这可能是问题吗?如果是这样,有谁知道哪个库可能导致错误? valgrind的输出与-v -v选项位于here

+1

Valgrind Bugzilla中存在类似的错误 - [http://bugs.kde.org/show_bug.cgi?id=280835](http://bugs.kde.org/show_bug.cgi?id=280835) – ks1322

+0

将'-msse2'或'-msse3'添加到'CFLAGS'或'CXXFLAGS'应该有助于找出问题。如果它消失了,那么它可能是Valgrind不了解最新的SSE指令的结果。 – jww

回答

6

这里的FAQ有确切的解释。

搜索 “x86的烦恼> IR:未处理的指令字节”

这里的问题:

看起来你已经使用二进制(/usr/lib/libFLAC.so.8.2.0)使用英特尔SSE4优化(strncmp_sse42)进行编译,这在您使用的amd(Arch和hwcaps:AMD64,amd64-sse3-cx16)上不受支持。