【问题标题】:Valgrind unhandled instruction bytes errorValgrind 未处理的指令字节错误
【发布时间】:2011-10-24 12:19:33
【问题描述】:

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

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

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

【问题讨论】:

  • 在 Valgrind Bugzilla 中有一个类似的错误 - http://bugs.kde.org/show_bug.cgi?id=280835
  • -msse2-msse3 添加到CFLAGSCXXFLAGS 应该有助于隔离问题。如果它消失了,那么很可能是 Valgrind 不理解最新的 SSE 指令的结果。

标签: valgrind


【解决方案1】:

这里是FAQ ,有准确的解释。

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

问题在这里:

看起来您使用的是使用英特尔 SSE4 优化 (strncmp_sse42) 编译的二进制文件 (/usr/lib/libFLAC.so.8.2.0),您使用的 amd 不支持该优化 (Arch 和 hwcaps: AMD64, amd64 -sse3-cx16)。

【讨论】:

    【解决方案2】:

    我在 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)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-12-13
      • 2013-06-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-02-19
      • 1970-01-01
      相关资源
      最近更新 更多