user-level: 0.722 x86: 0.710 semantic: 0.668 architecture: 0.612 arm: 0.564 debug: 0.549 performance: 0.545 ppc: 0.530 PID: 0.514 device: 0.490 mistranslation: 0.478 socket: 0.473 graphic: 0.465 kernel: 0.455 network: 0.443 hypervisor: 0.443 files: 0.440 permissions: 0.429 vnc: 0.425 assembly: 0.420 peripherals: 0.413 risc-v: 0.402 TCG: 0.384 KVM: 0.375 VMM: 0.367 register: 0.356 i386: 0.344 virtual: 0.310 boot: 0.300 Unable to debug PIE binaries with QEMU gdb stub. The issue occurs on current trunk: max@max:~/build/qemu$ cat test.c #include int main() { printf("Hello, world!\n"); return 0; } max@max:~/build/qemu$ gcc test.c -fPIC -pie -o bad.x max@max:~/build/qemu$ ./x86_64-linux-user/qemu-x86_64 -g 1234 bad.x ............................. max@max:~/build/qemu$ gdb GNU gdb (Ubuntu 7.7.1-0ubuntu5~14.04.2) 7.7.1 ........................................................................................ (gdb) file bad.x Reading symbols from bad.x...(no debugging symbols found)...done. (gdb) b main Breakpoint 1 at 0x779 (gdb) target remote localhost:1234 Remote debugging using localhost:1234 Reading symbols from /lib64/ld-linux-x86-64.so.2...warning: the debug information found in "/lib64/ld-2.19.so" does not match "/lib64/ld-linux-x86-64.so.2" (CRC mismatch). Reading symbols from /usr/lib/debug//lib/x86_64-linux-gnu/ld-2.19.so...done. done. Loaded symbols for /lib64/ld-linux-x86-64.so.2 Error in re-setting breakpoint 1: Cannot access memory at address 0x775 Error in re-setting breakpoint 1: Cannot access memory at address 0x775 0x0000004000a042d0 in _start () from /lib64/ld-linux-x86-64.so.2 (gdb) c Continuing. [Inferior 1 (Remote target) exited normally] (gdb) max@max:~/build/qemu$ cat config.log # Configured with: '/home/max/src/qemu/configure' '--prefix=/home/max/install/qemu' '--target-list=arm-linux-user,aarch64-linux-user,x86_64-linux-user' '--static' W/O QEMU or -pie flag breakpoint on main works fine. GDB server itself actually supports PIE binaries. This patch https://