Bug 386115 - vex x86->IR: unhandled instruction bytes: 0x67 0xE8 0xD3 0x8B any program
Summary: vex x86->IR: unhandled instruction bytes: 0x67 0xE8 0xD3 0x8B any program
Status: RESOLVED DUPLICATE of bug 384230
Alias: None
Product: valgrind
Classification: Unclassified
Component: vex (show other bugs)
Version: 3.13.0
Platform: Archlinux Packages Linux
: NOR normal (vote)
Target Milestone: ---
Assignee: Julian Seward
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2017-10-23 16:13 UTC by hartbook
Modified: 2017-10-23 16:30 UTC (History)
1 user (show)

See Also:
Latest Commit:
Version Fixed In:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description hartbook 2017-10-23 16:13:56 UTC
uname -a

Linux Thinkpad 4.12.13-1-ARCH #1 SMP PREEMPT Fri Sep 15 06:56:11 UTC 2017 i686 GNU/Linux

Compiling simple c++ program with g++ (GCC) version 7.2.0 :

int main()
{
   return 0;
}

g++ -W -Wall -std=c++11 -c main.cpp
g++ -W -Wall -std=c++11  main.o -o main

valgrind -v ./main

Linux Thinkpad 4.12.13-1-ARCH #1 SMP PREEMPT Fri Sep 15 06:56:11 UTC 2017 i686 GNU/Linux
==6131== Memcheck, a memory error detector
==6131== Copyright (C) 2002-2017, and GNU GPL'd, by Julian Seward et al.
==6131== Using Valgrind-3.13.0 and LibVEX; rerun with -h for copyright info
==6131== Command: ./main
==6131== 
--6131-- Valgrind options:
--6131--    -v
--6131-- Contents of /proc/version:
--6131--   Linux version 4.12.13-1-ARCH (builduser@foutrelis) (gcc version 7.2.0 (GCC) ) #1 SMP PREEMPT Fri Sep 15 06:56:11 UTC 2017
--6131-- 
--6131-- Arch and hwcaps: X86, LittleEndian, x86-mmxext-sse1-sse2-sse3
--6131-- Page sizes: currently 4096, max supported 4096
--6131-- Valgrind library directory: /usr/lib/valgrind
--6131-- Reading syms from /home/franck/Desktop/testValgrind/main
--6131-- Reading syms from /usr/lib/ld-2.26.so
--6131-- Reading syms from /usr/lib/valgrind/memcheck-x86-linux
--6131--    object doesn't have a symbol table
--6131--    object doesn't have a dynamic symbol table
--6131-- Scheduler: using generic scheduler lock implementation.
--6131-- Reading suppressions file: /usr/lib/valgrind/default.supp
==6131== embedded gdbserver: reading from /tmp/vgdb-pipe-from-vgdb-to-6131-by-franck-on-???
==6131== embedded gdbserver: writing to   /tmp/vgdb-pipe-to-vgdb-from-6131-by-franck-on-???
==6131== embedded gdbserver: shared mem   /tmp/vgdb-pipe-shared-mem-vgdb-6131-by-franck-on-???
==6131== 
==6131== TO CONTROL THIS PROCESS USING vgdb (which you probably
==6131== don't want to do, unless you know exactly what you're doing,
==6131== or are doing some strange experiment):
==6131==   /usr/lib/valgrind/../../bin/vgdb --pid=6131 ...command...
==6131== 
==6131== TO DEBUG THIS PROCESS USING GDB: start GDB like this
==6131==   /path/to/gdb ./main
==6131== and then give GDB the following command
==6131==   target remote | /usr/lib/valgrind/../../bin/vgdb --pid=6131
==6131== --pid is optional if only one valgrind process is running
==6131== 
vex x86->IR: unhandled instruction bytes: 0x67 0xE8 0xD3 0x8B
==6131== valgrind: Unrecognised instruction at address 0x40021c7.
==6131==    at 0x40021C7: dl_main (in /usr/lib/ld-2.26.so)
==6131==    by 0x4017F11: _dl_sysdep_start (in /usr/lib/ld-2.26.so)
==6131==    by 0x4001961: _dl_start (in /usr/lib/ld-2.26.so)
==6131==    by 0x4000BF6: ??? (in /usr/lib/ld-2.26.so)
==6131== Your program just tried to execute an instruction that Valgrind
==6131== did not recognise.  There are two possible reasons for this.
==6131== 1. Your program has a bug and erroneously jumped to a non-code
==6131==    location.  If you are running Memcheck and you just saw a
==6131==    warning about a bad jump, it's probably your program's fault.
==6131== 2. The instruction is legitimate but Valgrind doesn't handle it,
==6131==    i.e. it's Valgrind's fault.  If you think this is the case or
==6131==    you are not sure, please let us know and we'll try to fix it.
==6131== Either way, Valgrind will now raise a SIGILL signal which will
==6131== probably kill your program.
==6131== 
==6131== Process terminating with default action of signal 4 (SIGILL): dumping core
==6131==  Illegal opcode at address 0x40021C7
==6131==    at 0x40021C7: dl_main (in /usr/lib/ld-2.26.so)
==6131==    by 0x4017F11: _dl_sysdep_start (in /usr/lib/ld-2.26.so)
==6131==    by 0x4001961: _dl_start (in /usr/lib/ld-2.26.so)
==6131==    by 0x4000BF6: ??? (in /usr/lib/ld-2.26.so)
==6131== 
==6131== HEAP SUMMARY:
==6131==     in use at exit: 0 bytes in 0 blocks
==6131==   total heap usage: 0 allocs, 0 frees, 0 bytes allocated
==6131== 
==6131== All heap blocks were freed -- no leaks are possible
==6131== 
==6131== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0)
==6131== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0)

Thank you.
Comment 1 Tom Hughes 2017-10-23 16:30:25 UTC

*** This bug has been marked as a duplicate of bug 384230 ***