On 2013-03-11 12:22, Fabien Chouteau wrote: > On 03/10/2013 09:06 AM, Jan Kiszka wrote: >>> @@ -2491,6 +2493,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; >>> + } >> >> This works as expected for system mode, but now inverts the behaviour >> for user mode - that's unexpected and not ok. >> > > OK, I can change the default value for user mode. > >>> diff --git a/qemu-options.hx b/qemu-options.hx >>> index 6f9334a..026d3eb 100644 >>> --- a/qemu-options.hx >>> +++ b/qemu-options.hx >>> @@ -2988,6 +2988,13 @@ property must be set. These objects are placed in >>> the >>> '/objects' path. >>> ETEXI >>> >>> +DEF("gdb-not-attached", 0, QEMU_OPTION_gdb_not_attached, >>> + "-gdb-not-attached\n" >>> + " Do not set Gdb remote server in attached mode.\n" >>> + " When exiting debugging session, Gdb will send a >>> 'kill'\n" >>> + " command instead of a 'detach'.\n", >>> + QEMU_ARCH_ALL) >>> + >> >> First of all, why do we need this configurable? In which use cases do >> you want attached mode for user emulation or kill mode for system >> emulation/virtualization? >> > > It's more convenient for us, we expect QEMU to terminate at the end of > debugging session because we do not run big systems/kernels but short > test programs. It used to be the default behavior of QEMU, and our > test-suites, IDE, developers and users are expecting this.
And it's not possible to replace 'q' with 'k' in your gdb control scripts? That gives you a well-defined behaviour, and we don't need to tweak QEMU, specifically its command line, for this special case. Jan
signature.asc
Description: OpenPGP digital signature