This happens whenever libld is used to load a dynamically linked library. Full output: ==10913== Memcheck, a memory error detector ==10913== Copyright (C) 2002-2015, and GNU GPL'd, by Julian Seward et al. ==10913== Using Valgrind-3.11.0 and LibVEX; rerun with -h for copyright info ==10913== Command: gdb ==10913== vex amd64->IR: unhandled instruction bytes: 0x8F 0xEA 0xF8 0x10 0xC9 0x3 0x1D 0x0 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=NONE vex amd64->IR: PFX.66=0 PFX.F2=0 PFX.F3=0 ==10913== valgrind: Unrecognised instruction at address 0x4011d04. ==10913== at 0x4011D04: _dl_allocate_tls_storage (in /lib64/ld-2.22.so) ==10913== by 0x4000B9A: init_tls (in /lib64/ld-2.22.so) ==10913== by 0x40034AF: dl_main (in /lib64/ld-2.22.so) ==10913== by 0x4016978: _dl_sysdep_start (in /lib64/ld-2.22.so) ==10913== by 0x4004C28: _dl_start (in /lib64/ld-2.22.so) ==10913== by 0x4000C47: ??? (in /lib64/ld-2.22.so) ==10913== Your program just tried to execute an instruction that Valgrind ==10913== did not recognise. There are two possible reasons for this. ==10913== 1. Your program has a bug and erroneously jumped to a non-code ==10913== location. If you are running Memcheck and you just saw a ==10913== warning about a bad jump, it's probably your program's fault. ==10913== 2. The instruction is legitimate but Valgrind doesn't handle it, ==10913== i.e. it's Valgrind's fault. If you think this is the case or ==10913== you are not sure, please let us know and we'll try to fix it. ==10913== Either way, Valgrind will now raise a SIGILL signal which will ==10913== probably kill your program. ==10913== ==10913== Process terminating with default action of signal 4 (SIGILL) ==10913== Illegal opcode at address 0x4011D04 ==10913== at 0x4011D04: _dl_allocate_tls_storage (in /lib64/ld-2.22.so) ==10913== by 0x4000B9A: init_tls (in /lib64/ld-2.22.so) ==10913== by 0x40034AF: dl_main (in /lib64/ld-2.22.so) ==10913== by 0x4016978: _dl_sysdep_start (in /lib64/ld-2.22.so) ==10913== by 0x4004C28: _dl_start (in /lib64/ld-2.22.so) ==10913== by 0x4000C47: ??? (in /lib64/ld-2.22.so) ==10913== Jump to the invalid address stated on the next line ==10913== at 0x596: ??? ==10913== Address 0x596 is not stack'd, malloc'd or (recently) free'd ==10913== ==10913== ==10913== Process terminating with default action of signal 11 (SIGSEGV) ==10913== Bad permissions for mapped region at address 0x596 ==10913== at 0x596: ??? ==10913== ==10913== HEAP SUMMARY: ==10913== in use at exit: 0 bytes in 0 blocks ==10913== total heap usage: 0 allocs, 0 frees, 0 bytes allocated ==10913== ==10913== All heap blocks were freed -- no leaks are possible ==10913== ==10913== For counts of detected and suppressed errors, rerun with: -v ==10913== ERROR SUMMARY: 1 errors from 1 contexts (suppressed: 0 from 0) Segmentation fault Reproducible: Always Steps to Reproduce: 1. valgrind gdb 2. crash I am using Valgrind 3.11.0 and glibc-2.22 (compiled with -arch=native and -O2) uname -a: Linux localhost 4.3.0-gentoo #1 SMP Sat Dec 5 16:08:19 2015 x86_64 AMD A8-4500M APU with Radeon(tm) HD Graphics AuthenticAMD GNU/Linux
Ooops. Just found it now. Sorry. *** This bug has been marked as a duplicate of bug 328357 ***