Coredump
Program terminated with signal SIGSEGV, Segmentation fault. #0 0x00007fcc4ba55d7e in ... (gdb) p $_siginfo._sifields._sigfault.si_addr $1 = (void *) 0x7fcd00000003 (gdb) x/i $pc => 0x7fcc4ba55d7e <...>: mov 0x4(%r8),%r8d (gdb) p/x *(uint64_t*)($r8 + 0x4) $2 = 0x7fccffffffff (gdb) p/x $r8 + 4 $3 = 0x7fcd00000003 (gdb) disas ... 0x00007fcc4ba55d7a <+74>: mov 0x10(%rcx),%r8 => 0x00007fcc4ba55d7e <+78>: mov 0x4(%r8),%r8d (gdb) p/x *(uint64_t*)($rcx + 0x10) $4 = 0x7fcc20438f1c
Reasoning
- It fails to get the value at “0x4(%r8)”, because it’s outside the own memory segments.
- The value of R8 looks already very suspicious: 0x7fccffffffff.
- “p/x *(uint64_t*)($rcx + 0x10)” should have the same value as “p/x $r8”.
- It seems to be an issue of the CPU itself.