==26789== Memcheck, a memory error detector ==26789== Copyright (C) 2002-2017, and GNU GPL'd, by Julian Seward et al. ==26789== Using Valgrind-3.13.0 and LibVEX; rerun with -h for copyright info ==26789== Command: ./a.out ==26789== vex x86->IR: unhandled instruction bytes: 0x67 0xE8 0xAB 0x68 ==26789== valgrind: Unrecognised instruction at address 0x400301f. ==26789== at 0x400301F: dl_main (in /usr/lib32/ld-2.25.so) ==26789== by 0x4016A65: _dl_sysdep_start (in /usr/lib32/ld-2.25.so) ==26789== by 0x4001861: _dl_start (in /usr/lib32/ld-2.25.so) ==26789== by 0x4000AF6: ??? (in /usr/lib32/ld-2.25.so) ==26789== Your program just tried to execute an instruction that Valgrind ==26789== did not recognise. There are two possible reasons for this. ==26789== 1. Your program has a bug and erroneously jumped to a non-code ==26789== location. If you are running Memcheck and you just saw a ==26789== warning about a bad jump, it's probably your program's fault. ==26789== 2. The instruction is legitimate but Valgrind doesn't handle it, ==26789== i.e. it's Valgrind's fault. If you think this is the case or ==26789== you are not sure, please let us know and we'll try to fix it. ==26789== Either way, Valgrind will now raise a SIGILL signal which will ==26789== probably kill your program. ==26789== ==26789== Process terminating with default action of signal 4 (SIGILL) ==26789== Illegal opcode at address 0x400301F ==26789== at 0x400301F: dl_main (in /usr/lib32/ld-2.25.so) ==26789== by 0x4016A65: _dl_sysdep_start (in /usr/lib32/ld-2.25.so) ==26789== by 0x4001861: _dl_start (in /usr/lib32/ld-2.25.so) ==26789== by 0x4000AF6: ??? (in /usr/lib32/ld-2.25.so) ==26789== ==26789== HEAP SUMMARY: ==26789== in use at exit: 0 bytes in 0 blocks ==26789== total heap usage: 0 allocs, 0 frees, 0 bytes allocated ==26789== ==26789== All heap blocks were freed -- no leaks are possible ==26789== ==26789== For counts of detected and suppressed errors, rerun with: -v ==26789== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0)