为了在我的应用程序中搜索基于Liv555库的内存泄漏,我尝试使用valgrind运行它。它会导致以下错误:
vex amd64->IR: unhandled instruction bytes: 0xC5 0xF9 0x57 0xC0 0xC5 0xFA 0x10 0x15
在另一台计算机上运行它不会导致此错误(它运行正常),所以我希望这是一些库版本的结果。这可能是问题吗?如果是这样,有谁知道哪个库可能导致错误?
带有valgrind
选项的-v -v
输出位于here。
答案 0 :(得分:8)
这里FAQ 有确切的解释。
搜索“vex x86-> IR:未处理的指令字节”
问题在于:
看起来你使用的是使用intel SSE4优化编译的二进制文件(/usr/lib/libFLAC.so.8.2.0)(strncmp_sse42),这在你使用的amd上是不受支持的(Arch和hwcaps:AMD64,amd64 -sse3-CX16)。
答案 1 :(得分:0)
我在CentOS 7上遇到类似的问题:
vex amd64->IR: unhandled instruction bytes: 0xF 0xAE 0x64 0x24 0x40 0x48 0x8B 0x73
vex amd64->IR: REX=0 REX.W=0 REX.R=0 REX.X=0 REX.B=0
vex amd64->IR: VEX=0 VEX.L=0 VEX.nVVVV=0x0 ESC=0F
vex amd64->IR: PFX.66=0 PFX.F2=0 PFX.F3=0
==10527== valgrind: Unrecognised instruction at address 0x4016b18.
==10527== at 0x4016B18: _dl_runtime_resolve_xsave (in /usr/lib64/ld-2.17.so)
解决方案是安装内核调试信息。
yum --enablerepo=base-debuginfo install -y kernel-debuginfo-$(uname -r)