Summary: | amd64->IR: unhandled instruction bytes: 0xF 0xC7 0xF0 0x89 0x44 (__x86_rdrand) | ||
---|---|---|---|
Product: | [Developer tools] valgrind | Reporter: | Edward Yang <ezyang> |
Component: | vex | Assignee: | Julian Seward <jseward> |
Status: | RESOLVED DUPLICATE | ||
Severity: | normal | CC: | TafThorne, tom |
Priority: | NOR | ||
Version: | 3.14 SVN | ||
Target Milestone: | --- | ||
Platform: | Other | ||
OS: | Linux | ||
Latest Commit: | Version Fixed In: |
Description
Edward Yang
2017-12-15 17:52:49 UTC
I believe that I have replicated at least part of the issue covered by this bug report. That could move the status to confirmed as happening to more than 1 user on one machine. The background is stored on https://bugs.launchpad.net/ubuntu/+source/valgrind/+bug/1765001 In short, I was running valgrind --leak-check=yes against a binary that I generated with g++ (Ubuntu 5.4.0-6ubuntu1~16.04.9) 5.4.0 20160609 and the resulting output from Valgrind included: vex amd64->IR: unhandled instruction bytes: 0xF 0xC7 0xF0 0x89 0x6 0xF 0x42 0xC1 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 ==9424== valgrind: Unrecognised instruction at address 0x4ef1b15. ==9424== at 0x4EF1B15: ??? (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21) ==9424== by 0x4EF1CB1: std::random_device::_M_getval() (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21) ==9424== by 0x43CFBC: std::random_device::operator()() (random.h:1612)vex amd64->IR: unhandled instruction bytes: 0xF 0xC7 0xF0 0x89 0x6 0xF 0x42 0xC1 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 ==9424== valgrind: Unrecognised instruction at address 0x4ef1b15. ==9424== at 0x4EF1B15: ??? (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21) ==9424== by 0x4EF1CB1: std::random_device::_M_getval() (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21) ==9424== by 0x43CFBC: std::random_device::operator()() (random.h:1612) The Ubuntu bug was generated after I got a crash report prompt. It seems that running: valgrind --leak-check=yes -v without having the valgrind-dbg package installed casued something that Ubuntu did not like to happen. Once I installed the debug package to see if it would help the Ubuntu debug tracing, the crash stopped happening. Launchpad's magic has decided that my bug report might be https://bugs.launchpad.net/bugs/1301850 but I cannot view that bug to see if it is or is not. Maybe someone here in the KDE group would be able to do so though so I include it for reference. Please let me know if there is any further action that I should take. This is a duplicate - the short version is that we don't support the RDRAND instruction and (since 3.12.0) we have deliberately excluded it from the CPU capabilities we announce. If you are seeing this in current svn then your program is apparently ignoring the CPU capabilities we announce and trying to use the instruction regardless. *** This bug has been marked as a duplicate of bug 353370 *** As this is your own code the most likely cause is that you have compiled with -march=native or similar, which is never a good idea when using valgrind as we are not always up to date with the latest instructions and there may be some (like RDRAND) which is is hard or impossible for us to support. |