我试图运行我的苹果GCC 3.2.1(强制32位模式,仅适用于x86)下的valgrind 3.6.1编译的程序,但我得到以下初始化阶段出错:的valgrind未处理的指令字节:0xF 0XB 0xFF的0x85
vex x86->IR: unhandled instruction bytes: 0xF 0xB 0xFF 0x85
==80746== valgrind: Unrecognised instruction at address 0x2a6c2a9.
==80746== Your program just tried to execute an instruction that Valgrind
==80746== did not recognise. There are two possible reasons for this.
==80746== 1. Your program has a bug and erroneously jumped to a non-code
==80746== location. If you are running Memcheck and you just saw a
==80746== warning about a bad jump, it's probably your program's fault.
==80746== 2. The instruction is legitimate but Valgrind doesn't handle it,
==80746== i.e. it's Valgrind's fault. If you think this is the case or
==80746== you are not sure, please let us know and we'll try to fix it.
==80746== Either way, Valgrind will now raise a SIGILL signal which will
==80746== probably kill your program.
==80746==
==80746== Process terminating with default action of signal 4 (SIGILL)
==80746== Illegal opcode at address 0x2A6C2A9
请问您可以告诉我这个指令是什么,我该怎么办?如果我下GDB运行我的申请,我通过这个代码区没有问题...
你可以用debug进行编译吗?也许它会给你一些更多的信息....特别是解决地址'0x2a6c2a9' –
它是只与这个应用程序或在这个系统上valgrind的一般问题? – Nobody
是的,我正在运行我的应用程序的调试版本,这是valgrind遇到的唯一的应用程序... – Ryan