Reverse debugging is currently broken with sid's combination of libc and GDB on x86_64. The problem is that support for some instructions is missing; one of these is vorpd, used at least in libc's memset(): ============================================================ $ gcc gdb-test.c -o gdb-test -g $ gdb -q gdb-test Reading symbols from gdb-test...done. (gdb) start Temporary breakpoint 1 at 0x6d4: file gdb-test.c, line 10. Starting program: /home/sliedes/gdb-test/gdb-test Temporary breakpoint 1, main () at gdb-test.c:10 10 foo(); (gdb) target record-full (gdb) c Continuing. Process record does not support instruction 0xc5 at address 0x7ffff7deea70. Process record: failed to record execution log. Program stopped. _dl_runtime_resolve_avx_slow () at ../sysdeps/x86_64/dl-trampoline.h:70 70 ../sysdeps/x86_64/dl-trampoline.h: No such file or directory. (gdb) disas Dump of assembler code for function _dl_runtime_resolve_avx_slow: => 0x00007ffff7deea70 <+0>: vorpd %ymm0,%ymm1,%ymm8 0x00007ffff7deea74 <+4>: vorpd %ymm2,%ymm3,%ymm9 0x00007ffff7deea78 <+8>: vorpd %ymm4,%ymm5,%ymm10 0x00007ffff7deea7c <+12>: vorpd %ymm6,%ymm7,%ymm11 0x00007ffff7deea80 <+16>: vorpd %ymm8,%ymm9,%ymm9 0x00007ffff7deea85 <+21>: vorpd %ymm10,%ymm11,%ymm10 0x00007ffff7deea8a <+26>: vpcmpeqd %xmm8,%xmm8,%xmm8 0x00007ffff7deea8f <+31>: vorpd %ymm9,%ymm10,%ymm10 0x00007ffff7deea94 <+36>: vptest %ymm10,%ymm8 0x00007ffff7deea99 <+41>: bnd jae 0x7ffff7deead0 <_dl_runtime_resolve_avx> 0x00007ffff7deea9c <+44>: vzeroupper 0x00007ffff7deea9f <+47>: bnd jmpq 0x7ffff7def3f0 <_dl_runtime_resolve_sse_vex> End of assembler dump. (gdb) reverse-stepi 0x0000555555554556 in ?? () (gdb) 0x0000555555554550 in ?? () (gdb) 0x000055555555456b in memset@plt () (gdb) ============================================================