微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Valgrind未处理的指令字节:0x8F 0xEA 0xF8 0x10 0xC9 0x3 0x1D 0x0

当我编译我的C程序并在valgrind下运行时,我有以下错误

vex amd64->IR: unhandled instruction bytes: 0x8F 0xEA 0xF8 0x10 0xC9 0x3 0x1D 0x0 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=NONE vex amd64->IR: PFX.66=0 PFX.F2=0 PFX.F3=0 ==6097== valgrind: Unrecognised instruction at address 0x4011d34. ==6097== at 0x4011D34: _dl_allocate_tls_storage (dl-tls.c:379) ==6097== by 0x4000B9A: init_tls (rtld.c:622) ==6097== by 0x40034BF: dl_main (rtld.c:1683) ==6097== by 0x40169A8: _dl_sysdep_start (dl-sysdep.c:249) ==6097== by 0x4004C30: _dl_start_final (rtld.c:307) ==6097== by 0x4004C30: _dl_start (rtld.c:413) ==6097== by 0x4000C47: ??? (in /lib64/ld-2.22.so) ... ==6097== For counts of detected and suppressed errors,rerun with: -v ==6097== ERROR SUMMARY: 1 errors from 1 contexts (suppressed: 0 from 0) Segmentation fault

我的系统信息:

Linux 4.1.15-gentoo-r1#3 SMP x86_64 AMD Opteron(tm)处理器6320 AuthenticAMD GNU / Linux

我明白,有一些与教学有关的东西。 我跟着这个链接错误563796 – dev-util / valgrind:不支持TBM指令,并添加到我的Makefile CFLAGS -march=native -mno-tbm ,甚至-msse2或-msse3但仍然有同样的错误

我认为没有内存泄漏,因为我编译与不同的系统,它只是运行良好。 有什么办法摆脱错误,并使valgrind工作?

尽管你正在使用-march=native -mno-tbm来编译你的应用程序,但你仍然容易出现同样的问题,因为你的系统都是在没有-mno-tbm情况下编译的,包括glibc代码,这是什么原因造成的这个问题在你的情况。

您需要将-march=native -mno-tbm到您的/etc/portage/make.conf下的CFLAGS ,然后将glibc和您可能正在使用的其他任何库加入。

最好是,你应该重新编译你的整个gentoo系统。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐