Hi All, GDB semihosting support is broken in the current trunk. When debugging a basic "Hello, World" application via the QEMU GDB stub:
$ qemu-system-arm -s -S -M integratorcp -cpu any --semihosting --monitor null --serial null -kernel hello GDB (7.2.50) receives an interrupt before anything is printed: Program received signal SIGINT, Interrupt. The fundamental issue is that the GDB server implementation sends syscall requests while the system CPU is still running and isn't prepared to handle the replies. This patch fixes the problem by delaying syscall request until the system CPU has stopped. * Changes from v1 - At the suggestion of Peter Maydell I changed the implementation to delay sending syscall requests until the CPU has stopped instead of incorrectly attempting to just suppress the sending of 'T' status replies. Meador Inge (1): gdbserver: Don't send a GDB syscall until the system CPU is stopped gdbstub.c | 44 ++++++++++++++++++++++++++++---------------- 1 files changed, 28 insertions(+), 16 deletions(-) -- 1.7.7.6