Bug 252104 - error while running valgrind: "vex amd64->IR: unhandled instruction bytes: 0xF3 0xF 0xB8 0x4 0x11 0x48"
Summary: error while running valgrind: "vex amd64->IR: unhandled instruction bytes: 0x...
Alias: None
Product: valgrind
Classification: Developer tools
Component: vex (show other bugs)
Version: 3.5.0
Platform: Gentoo Packages Linux
: NOR normal
Target Milestone: ---
Assignee: Julian Seward
Depends on:
Blocks: 253451
  Show dependency treegraph
Reported: 2010-09-23 09:46 UTC by Cristian Oneț
Modified: 2011-02-26 20:04 UTC (History)
0 users

See Also:
Latest Commit:
Version Fixed In:


Note You need to log in before you can comment on or make changes to this bug.
Description Cristian Oneț 2010-09-23 09:46:27 UTC

I'm getting this error while trying to use valgrind to profile an application:

vex amd64->IR: unhandled instruction bytes: 0xF3 0xF 0xB8 0x4 0x11 0x48
==19771== valgrind: Unrecognised instruction at address 0xf728338.
==19771== Your program just tried to execute an instruction that Valgrind
==19771== did not recognise.  There are two possible reasons for this.
==19771== 1. Your program has a bug and erroneously jumped to a non-code
==19771==    location.  If you are running Memcheck and you just saw a
==19771==    warning about a bad jump, it's probably your program's fault.
==19771== 2. The instruction is legitimate but Valgrind doesn't handle it,
==19771==    i.e. it's Valgrind's fault.  If you think this is the case or
==19771==    you are not sure, please let us know and we'll try to fix it.
==19771== Either way, Valgrind will now raise a SIGILL signal which will
==19771== probably kill your program.

I get this error regardless of which program I am profiling and which valgrind tool I am using.

$ valgrind --version
$ uname -a
Linux localhost 2.6.34-gentoo-r6 #1 SMP PREEMPT Sat Sep 11 21:04:31 EEST 2010 x86_64 Intel(R) Core(TM) i5 CPU 750 @ 2.67GHz GenuineIntel GNU/Linux

A response on the valgrind-developer mailing list of John Reiser states the following:
> cat /proc/cpuinfo on the cpu emulated since r2011 says
> flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca mov
> pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx rdtscp lm
> constant_tsc arch_perfmon pebs bts rep_good xtopology nonstop_tsc aperfmperf
> pni pclmulqdq dtes64 monitor ds_cpl vmx smx est tm2 ssse3 cx16 xtpr pdcm
> sse4_1 sse4_2 popcnt aes lahf_lm ida arat tpr_shadow vnmi flexpriority ept
> vpid

Note that 'popcnt' is in the list [so is 'aes'.]  However, there is
no case for 0x0F 0xB8 in file VEX/priv/guest_x86_toIR.c.  Oops.
[It doesn't help that there is an "extra" 0xF3 prefix.]
Comment 1 Cristian Oneț 2011-02-17 12:40:54 UTC
Are there any news regarding this bug?
Comment 2 Julian Seward 2011-02-17 12:55:56 UTC
Did you try valgrind-3.6.1 ?
Comment 3 Cristian Oneț 2011-02-17 13:08:23 UTC
No I didn't since the bug is not marked as closed I guessed that there is no need to try it.
Comment 4 Cristian Oneț 2011-02-26 20:04:40 UTC
Today I finally managed to run 3.6.1. It seems that this bug has been fixed. It would be nice though to close the bugs that are fixed so that the reporter wouldn't have to wait indefinitely thinking that the reported bug is still open.