@@ -42,6 +42,12 @@
#include "sysemu/kvm.h"
#include "qemu/bitops.h"
+#ifdef CONFIG_USER_ONLY
+static bool gdb_attached; /* false */
+#else
+static bool gdb_attached = true;
+#endif
+
#ifndef TARGET_CPU_MEMORY_RW_DEBUG
static inline int target_memory_rw_debug(CPUArchState *env, target_ulong addr,
uint8_t *buf, int len, int is_write)
@@ -2491,6 +2497,10 @@ static int gdb_handle_packet(GDBState *s, const char *line_buf)
break;
}
#endif
+ if (strncmp(p, "Attached", 8) == 0) {
+ put_packet(s, gdb_attached ? "1" : "0");
+ break;
+ }
/* Unrecognised 'q' command. */
goto unknown_command;
With this patch QEMU handles qAttached request from gdb. When QEMU replies 1, GDB sends a "detach" command at the end of a debugging session otherwise GDB sends "kill". The default value for qAttached is 1 on system emulation and 0 on user emulation. This patch implements the requirement described in Jan Kiszka's patch: "gdbstub: Do not kill target in system emulation mode". The patch can therefore be reverted. Signed-off-by: Fabien Chouteau <chouteau@adacore.com> --- gdbstub.c | 10 ++++++++++ 1 file changed, 10 insertions(+)