On 07.12.18 10:01, Luc Michel wrote: > Add the gdb_first_attached_cpu() and gdb_next_attached_cpu() to iterate > over all the CPUs in currently attached processes. > > Add the gdb_first_cpu_in_process() and gdb_next_cpu_in_process() to > iterate over CPUs of a given process. > > Use them to add multiprocess extension support to vCont packets. > > Signed-off-by: Luc Michel <luc.mic...@greensocs.com> > Reviewed-by: Philippe Mathieu-Daudé <phi...@redhat.com> > Reviewed-by: Edgar E. Iglesias <edgar.igles...@xilinx.com> > Acked-by: Alistair Francis <alistair.fran...@wdc.com> > --- > gdbstub.c | 117 +++++++++++++++++++++++++++++++++++++++++++++++------- > 1 file changed, 102 insertions(+), 15 deletions(-) > > diff --git a/gdbstub.c b/gdbstub.c > index 911faa225a..77b3dbb2c8 100644 > --- a/gdbstub.c > +++ b/gdbstub.c > @@ -721,10 +721,40 @@ static CPUState *find_cpu(uint32_t thread_id) > } > > return NULL; > } > > +static CPUState *get_first_cpu_in_process(const GDBState *s, > + GDBProcess *process) > +{ > + CPUState *cpu; > + > + CPU_FOREACH(cpu) { > + if (gdb_get_cpu_pid(s, cpu) == process->pid) { > + return cpu; > + } > + } > + > + return NULL; > +} > + > +static CPUState *gdb_next_cpu_in_process(const GDBState *s, CPUState *cpu) > +{ > + uint32_t pid = gdb_get_cpu_pid(s, cpu); > + cpu = CPU_NEXT(cpu); > + > + while (cpu) { > + if (gdb_get_cpu_pid(s, cpu) == pid) { > + break; > + } > + > + cpu = CPU_NEXT(cpu); > + } > + > + return cpu; > +} > + > static CPUState *gdb_get_cpu(const GDBState *s, uint32_t pid, uint32_t tid) > { > GDBProcess *process; > CPUState *cpu; > > @@ -750,10 +780,41 @@ static CPUState *gdb_get_cpu(const GDBState *s, > uint32_t pid, uint32_t tid) > } > > return cpu; > } > > +/* Return the cpu following @cpu, while ignoring > + * unattached processes. > + */ > +static CPUState *gdb_next_attached_cpu(const GDBState *s, CPUState *cpu) > +{ > + cpu = CPU_NEXT(cpu); > + > + while (cpu) { > + if (gdb_get_cpu_process(s, cpu)->attached) { > + break; > + } > + > + cpu = CPU_NEXT(cpu); > + } > + > + return cpu; > +} > + > +/* Return the first attached cpu */ > +static CPUState *gdb_first_attached_cpu(const GDBState *s) > +{ > + CPUState *cpu = first_cpu; > + GDBProcess *process = gdb_get_cpu_process(s, cpu); > + > + if (!process->attached) { > + return gdb_next_attached_cpu(s, cpu); > + } > + > + return cpu; > +} > + > static const char *get_feature_xml(const char *p, const char **newp, > CPUClass *cc) > { > size_t len; > int i; > @@ -1088,14 +1149,16 @@ static int is_query_packet(const char *p, const char > *query, char separator) > * returns -ENOTSUP if a command is unsupported, -EINVAL or -ERANGE if > there is > * a format error, 0 on success. > */ > static int gdb_handle_vcont(GDBState *s, const char *p) > { > - int res, idx, signal = 0; > + int res, signal = 0; > char cur_action; > char *newstates; > unsigned long tmp; > + uint32_t pid, tid; > + GDBProcess *process; > CPUState *cpu; > #ifdef CONFIG_USER_ONLY > int max_cpus = 1; /* global variable max_cpus exists only in system > mode */ > > CPU_FOREACH(cpu) { > @@ -1134,29 +1197,52 @@ static int gdb_handle_vcont(GDBState *s, const char > *p) > } else if (cur_action != 'c' && cur_action != 's') { > /* unknown/invalid/unsupported command */ > res = -ENOTSUP; > goto out; > } > - /* thread specification. special values: (none), -1 = all; 0 = any */ > - if ((p[0] == ':' && p[1] == '-' && p[2] == '1') || (p[0] != ':')) { > - if (*p == ':') { > - p += 3; > - } > - for (idx = 0; idx < max_cpus; idx++) { > - if (newstates[idx] == 1) { > - newstates[idx] = cur_action; > + > + if (*p++ != ':') { > + res = -ENOTSUP; > + goto out; > + } > + > + switch (read_thread_id(p, &p, &pid, &tid)) { > + case GDB_READ_THREAD_ERR: > + res = -EINVAL; > + goto out; > + > + case GDB_ALL_PROCESSES: > + cpu = gdb_first_attached_cpu(s); > + while (cpu) { > + if (newstates[cpu->cpu_index] == 1) { > + newstates[cpu->cpu_index] = cur_action; > } > + > + cpu = gdb_next_attached_cpu(s, cpu); > } > - } else if (*p == ':') { > - p++; > - res = qemu_strtoul(p, &p, 16, &tmp); > - if (res) { > + break; > + > + case GDB_ALL_THREADS: > + process = gdb_get_process(s, pid); > + > + if (!process->attached) { > + res = -EINVAL; > goto out; > } > > - /* 0 means any thread, so we pick the first valid CPU */ > - cpu = tmp ? find_cpu(tmp) : first_cpu; > + cpu = get_first_cpu_in_process(s, process); > + while (cpu) { > + if (newstates[cpu->cpu_index] == 1) { > + newstates[cpu->cpu_index] = cur_action; > + } > + > + cpu = gdb_next_cpu_in_process(s, cpu); > + } > + break; > + > + case GDB_ONE_THREAD: > + cpu = gdb_get_cpu(s, pid, tid); > > /* invalid CPU/thread specified */ > if (!cpu) { > res = -EINVAL; > goto out; > @@ -1164,10 +1250,11 @@ static int gdb_handle_vcont(GDBState *s, const char > *p) > > /* only use if no previous match occourred */ > if (newstates[cpu->cpu_index] == 1) { > newstates[cpu->cpu_index] = cur_action; > } > + break; > } > } > s->signal = signal; > gdb_continue_partial(s, newstates); > >
This breaks system-level debugging with gdb, at least with version 7.7.50 and for x86 targets. Without the patch: (gdb) set debug remote 1 (gdb) tar rem :1234 Remote debugging using :1234 Sending packet: $qSupported:multiprocess+;xmlRegisters=i386;qRelocInsn+#b5...Packet instead of Ack, ignoring it Ack Packet received: PacketSize=1000;qXfer:features:read+ Packet qSupported (supported-packets) is supported Sending packet: $Hg0#df...Ack Packet received: E22 Sending packet: $qXfer:features:read:target.xml:0,ffb#79...Ack Packet received: l<?xml version="1.0"?><!DOCTYPE target SYSTEM "gdb-target.dtd"><target><architecture>i386:x86-64</architecture><xi:include href="i386-64bit.xml"/></target> Sending packet: $qXfer:features:read:i386-64bit.xml:0,ffb#d2...Ack Packet received: l<?xml version="1.0"?>\n<!-- Copyright (C) 2010-2017 Free Software Foundation, Inc.\n\n Copying and distribution of this file, with or without modification,\n are permitted in any medium without royalty provided the copyright\n notice and this notice are preserved. -->\n\n<!-- I386 64bit -->\n\n<!DOCTYPE target SYSTEM "gdb-target.dtd">\n<feature name="org.gnu.gdb.i386.64bit">\n <xi:include href="i386-64bit-core.xml"/>\n <xi:include href="i386-64bit-sse.xml"/>\n</feature>\n Sending packet: $qXfer:features:read:i386-64bit-core.xml:0,ffb#a8...Ack Packet received: m<?xml version="1.0"?>\n<!-- Copyright (C) 2010-2015 Free Software Foundation, Inc.\n\n Copying and distribution of this file, with or without modification,\n are permitted in any medium without royalty provided the copyright\n notice and this notice are preserved. -->\n\n<!DOCTYPE feature SYSTEM "gdb-target.dtd">\n<feature name="org.gnu.gdb.i386.core">\n <flags id="i386_eflags" size="4">\n <field name="CF" start="0" end="0"/>\n <field name="" start="1" end="1"/>\n <field name="PF" start="2" end="2"/>\n <field name="AF" start="4" end="4"/>\n <field name="ZF" start="6" end="6"/>\n <field name="SF" start="7" end="7"/>\n <field name="TF" start="8" end="8"/>\n <field name="IF" start="9" end="9"/>\n <field name="DF" start="10" end="10"/>\n <field name="OF" start="11" end="11"/>\n <field name="NT" start="14" end="14"/>\n <field name="RF" start="16" end="16"/>\n <field name="VM" start="17" end="17"/>\n <field name="AC" start="18" end="18"/>\n <field name="VIF" start="19" end="19"/>\n <field name="VIP" start="20" end="20"/>\n <field name="ID" start="21" end="21"/>\n </flags>\n\n <reg name="rax" bitsize="64" type="int64"/>\n <reg name="rbx" bitsize="64" type="int64"/>\n <reg name="rcx" bitsize="64" type="int64"/>\n <reg name="rdx" bitsize="64" type="int64"/>\n <reg name="rsi" bitsize="64" type="int64"/>\n <reg name="rdi" bitsize="64" type="int64"/>\n <reg name="rbp" bitsize="64" type="data_ptr"/>\n <reg name="rsp" bitsize="64" type="data_ptr"/>\n <reg name="r8" bitsize="64" type="int64"/>\n <reg name="r9" bitsize="64" type="int64"/>\n <reg name="r10" bitsize="64" type="int64"/>\n <reg name="r11" bitsize="64" type="int64"/>\n <reg name="r12" bitsize="64" type="int64"/>\n <reg name="r13" bitsize="64" type="int64"/>\n <reg name="r14" bitsize="64" type="int64"/>\n <reg name="r15" bitsize="64" type="int64"/>\n\n <reg name="rip" bitsize="64" type="code_ptr"/>\n <reg name="eflags" bitsize="32" type="i386_eflags"/>\n <reg name="cs" bitsize="32" type="int32"/>\n <reg name="ss" bitsize="32" ty Sending packet: $qXfer:features:read:i386-64bit-core.xml:7fd,802#e5...Ack Packet received: lpe="int32"/>\n <reg name="ds" bitsize="32" type="int32"/>\n <reg name="es" bitsize="32" type="int32"/>\n <reg name="fs" bitsize="32" type="int32"/>\n <reg name="gs" bitsize="32" type="int32"/>\n\n <reg name="st0" bitsize="80" type="i387_ext"/>\n <reg name="st1" bitsize="80" type="i387_ext"/>\n <reg name="st2" bitsize="80" type="i387_ext"/>\n <reg name="st3" bitsize="80" type="i387_ext"/>\n <reg name="st4" bitsize="80" type="i387_ext"/>\n <reg name="st5" bitsize="80" type="i387_ext"/>\n <reg name="st6" bitsize="80" type="i387_ext"/>\n <reg name="st7" bitsize="80" type="i387_ext"/>\n\n <reg name="fctrl" bitsize="32" type="int" group="float"/>\n <reg name="fstat" bitsize="32" type="int" group="float"/>\n <reg name="ftag" bitsize="32" type="int" group="float"/>\n <reg name="fiseg" bitsize="32" type="int" group="float"/>\n <reg name="fioff" bitsize="32" type="int" group="float"/>\n <reg name="foseg" bitsize="32" type="int" group="float"/>\n <reg name="fooff" bitsize="32" type="int" group="float"/>\n <reg name="fop" bitsize="32" type="int" group="float"/>\n</feature>\n Sending packet: $qXfer:features:read:i386-64bit-sse.xml:0,ffb#4a...Ack Packet received: m<?xml version="1.0"?>\n<!-- Copyright (C) 2010-2017 Free Software Foundation, Inc.\n\n Copying and distribution of this file, with or without modification,\n are permitted in any medium without royalty provided the copyright\n notice and this notice are preserved. -->\n\n<!DOCTYPE feature SYSTEM "gdb-target.dtd">\n<feature name="org.gnu.gdb.i386.64bit.sse">\n <vector id="v4f" type="ieee_single" count="4"/>\n <vector id="v2d" type="ieee_double" count="2"/>\n <vector id="v16i8" type="int8" count="16"/>\n <vector id="v8i16" type="int16" count="8"/>\n <vector id="v4i32" type="int32" count="4"/>\n <vector id="v2i64" type="int64" count="2"/>\n <union id="vec128">\n <field name="v4_float" type="v4f"/>\n <field name="v2_double" type="v2d"/>\n <field name="v16_int8" type="v16i8"/>\n <field name="v8_int16" type="v8i16"/>\n <field name="v4_int32" type="v4i32"/>\n <field name="v2_int64" type="v2i64"/>\n <field name="uint128" type="uint128"/>\n </union>\n <flags id="i386_mxcsr" size="4">\n <field name="IE" start="0" end="0"/>\n <field name="DE" start="1" end="1"/>\n <field name="ZE" start="2" end="2"/>\n <field name="OE" start="3" end="3"/>\n <field name="UE" start="4" end="4"/>\n <field name="PE" start="5" end="5"/>\n <field name="DAZ" start="6" end="6"/>\n <field name="IM" start="7" end="7"/>\n <field name="DM" start="8" end="8"/>\n <field name="ZM" start="9" end="9"/>\n <field name="OM" start="10" end="10"/>\n <field name="UM" start="11" end="11"/>\n <field name="PM" start="12" end="12"/>\n <field name="FZ" start="15" end="15"/>\n </flags>\n\n <reg name="xmm0" bitsize="128" type="vec128" regnum="40"/>\n <reg name="xmm1" bitsize="128" type="vec128"/>\n <reg name="xmm2" bitsize="128" type="vec128"/>\n <reg name="xmm3" bitsize="128" type="vec128"/>\n <reg name="xmm4" bitsize="128" type="vec128"/>\n <reg name="xmm5" bitsize="128" type="vec128"/>\n <reg name="xmm6" bitsize="128" type="vec128"/>\n <reg name="xmm7" bitsize="128" type="vec128"/>\n <reg name="xmm8" bitsize="128" type Sending packet: $qXfer:features:read:i386-64bit-sse.xml:7fd,802#87...Ack Packet received: l="vec128"/>\n <reg name="xmm9" bitsize="128" type="vec128"/>\n <reg name="xmm10" bitsize="128" type="vec128"/>\n <reg name="xmm11" bitsize="128" type="vec128"/>\n <reg name="xmm12" bitsize="128" type="vec128"/>\n <reg name="xmm13" bitsize="128" type="vec128"/>\n <reg name="xmm14" bitsize="128" type="vec128"/>\n <reg name="xmm15" bitsize="128" type="vec128"/>\n\n <reg name="mxcsr" bitsize="32" type="i386_mxcsr" group="vector"/>\n</feature>\n Sending packet: $qTStatus#49...Ack Packet received: Packet qTStatus (trace-status) is NOT supported Sending packet: $?#3f...Ack Packet received: T05thread:01; Sending packet: $qfThreadInfo#bb...Ack Packet received: m1 Sending packet: $qAttached#8f...Ack Packet received: 1 Packet qAttached (query-attached) is supported Sending packet: $qsThreadInfo#c8...Ack Packet received: m2 Sending packet: $qsThreadInfo#c8...Ack Packet received: m3 Sending packet: $qsThreadInfo#c8...Ack Packet received: m4 Sending packet: $qsThreadInfo#c8...Ack Packet received: l Sending packet: $Hc-1#09...Ack Packet received: OK Sending packet: $g#67...Ack Packet received: 20c4613d8088ffff46020000000000000017173d8088ffff0017173d8088ffff005cf40000eaffff0100008000000000800d7083ffffffff20bb190000c9ffff01000000000000003ab24e81ffffffff00000000000000000100000000000000e5938781ffffffff88bc190000c9ffff0017173d8088ffff00d9003d8088ffffd0001b81ffffffff4600000010000000180000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007f0300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000801f0000 Sending packet: $mffffffff811b00d0,1#ea...Ack Packet received: 8b Sending packet: $mffffffff811b00d0,1#ea...Ack Packet received: 8b Sending packet: $mffffffff811b00d0,9#f2...Ack Packet received: 8b050a6e590285c075 0xffffffff811b00d0 in ?? () (gdb) stepi Sending packet: $vCont?#49...Ack Packet received: vCont;c;C;s;S Packet vCont (verbose-resume) is supported Sending packet: $vCont;s:1;c#c1...Ack Packet received: T05thread:01; Sending packet: $g#67...Ack Packet received: 000000000000000046020000000000000017173d8088ffff0017173d8088ffff005cf40000eaffff0100008000000000800d7083ffffffff20bb190000c9ffff01000000000000003ab24e81ffffffff00000000000000000100000000000000e5938781ffffffff88bc190000c9ffff0017173d8088ffff00d9003d8088ffffd6001b81ffffffff4600000010000000180000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007f0300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000801f0000 Sending packet: $mffffffff811b00d6,1#f0...Ack Packet received: 85 Sending packet: $mffffffff811b00d6,1#f0...Ack Packet received: 85 Sending packet: $mffffffff811b00d6,9#f8...Ack Packet received: 85c07502f3c3ebd266 0xffffffff811b00d6 in ?? () With the patch applied: (gdb) set debug remote 1 (gdb) tar rem :1234 Remote debugging using :1234 Sending packet: $qSupported:multiprocess+;xmlRegisters=i386;qRelocInsn+#b5...Packet instead of Ack, ignoring it Ack Packet received: PacketSize=1000;qXfer:features:read+ Packet qSupported (supported-packets) is supported Sending packet: $Hg0#df...Ack Packet received: E22 Sending packet: $qXfer:features:read:target.xml:0,ffb#79...Ack Packet received: l<?xml version="1.0"?><!DOCTYPE target SYSTEM "gdb-target.dtd"><target><architecture>i386:x86-64</architecture><xi:include href="i386-64bit.xml"/></target> Sending packet: $qXfer:features:read:i386-64bit.xml:0,ffb#d2...Ack Packet received: l<?xml version="1.0"?>\n<!-- Copyright (C) 2010-2017 Free Software Foundation, Inc.\n\n Copying and distribution of this file, with or without modification,\n are permitted in any medium without royalty provided the copyright\n notice and this notice are preserved. -->\n\n<!-- I386 64bit -->\n\n<!DOCTYPE target SYSTEM "gdb-target.dtd">\n<feature name="org.gnu.gdb.i386.64bit">\n <xi:include href="i386-64bit-core.xml"/>\n <xi:include href="i386-64bit-sse.xml"/>\n</feature>\n Sending packet: $qXfer:features:read:i386-64bit-core.xml:0,ffb#a8...Ack Packet received: m<?xml version="1.0"?>\n<!-- Copyright (C) 2010-2015 Free Software Foundation, Inc.\n\n Copying and distribution of this file, with or without modification,\n are permitted in any medium without royalty provided the copyright\n notice and this notice are preserved. -->\n\n<!DOCTYPE feature SYSTEM "gdb-target.dtd">\n<feature name="org.gnu.gdb.i386.core">\n <flags id="i386_eflags" size="4">\n <field name="CF" start="0" end="0"/>\n <field name="" start="1" end="1"/>\n <field name="PF" start="2" end="2"/>\n <field name="AF" start="4" end="4"/>\n <field name="ZF" start="6" end="6"/>\n <field name="SF" start="7" end="7"/>\n <field name="TF" start="8" end="8"/>\n <field name="IF" start="9" end="9"/>\n <field name="DF" start="10" end="10"/>\n <field name="OF" start="11" end="11"/>\n <field name="NT" start="14" end="14"/>\n <field name="RF" start="16" end="16"/>\n <field name="VM" start="17" end="17"/>\n <field name="AC" start="18" end="18"/>\n <field name="VIF" start="19" end="19"/>\n <field name="VIP" start="20" end="20"/>\n <field name="ID" start="21" end="21"/>\n </flags>\n\n <reg name="rax" bitsize="64" type="int64"/>\n <reg name="rbx" bitsize="64" type="int64"/>\n <reg name="rcx" bitsize="64" type="int64"/>\n <reg name="rdx" bitsize="64" type="int64"/>\n <reg name="rsi" bitsize="64" type="int64"/>\n <reg name="rdi" bitsize="64" type="int64"/>\n <reg name="rbp" bitsize="64" type="data_ptr"/>\n <reg name="rsp" bitsize="64" type="data_ptr"/>\n <reg name="r8" bitsize="64" type="int64"/>\n <reg name="r9" bitsize="64" type="int64"/>\n <reg name="r10" bitsize="64" type="int64"/>\n <reg name="r11" bitsize="64" type="int64"/>\n <reg name="r12" bitsize="64" type="int64"/>\n <reg name="r13" bitsize="64" type="int64"/>\n <reg name="r14" bitsize="64" type="int64"/>\n <reg name="r15" bitsize="64" type="int64"/>\n\n <reg name="rip" bitsize="64" type="code_ptr"/>\n <reg name="eflags" bitsize="32" type="i386_eflags"/>\n <reg name="cs" bitsize="32" type="int32"/>\n <reg name="ss" bitsize="32" ty Sending packet: $qXfer:features:read:i386-64bit-core.xml:7fd,802#e5...Ack Packet received: lpe="int32"/>\n <reg name="ds" bitsize="32" type="int32"/>\n <reg name="es" bitsize="32" type="int32"/>\n <reg name="fs" bitsize="32" type="int32"/>\n <reg name="gs" bitsize="32" type="int32"/>\n\n <reg name="st0" bitsize="80" type="i387_ext"/>\n <reg name="st1" bitsize="80" type="i387_ext"/>\n <reg name="st2" bitsize="80" type="i387_ext"/>\n <reg name="st3" bitsize="80" type="i387_ext"/>\n <reg name="st4" bitsize="80" type="i387_ext"/>\n <reg name="st5" bitsize="80" type="i387_ext"/>\n <reg name="st6" bitsize="80" type="i387_ext"/>\n <reg name="st7" bitsize="80" type="i387_ext"/>\n\n <reg name="fctrl" bitsize="32" type="int" group="float"/>\n <reg name="fstat" bitsize="32" type="int" group="float"/>\n <reg name="ftag" bitsize="32" type="int" group="float"/>\n <reg name="fiseg" bitsize="32" type="int" group="float"/>\n <reg name="fioff" bitsize="32" type="int" group="float"/>\n <reg name="foseg" bitsize="32" type="int" group="float"/>\n <reg name="fooff" bitsize="32" type="int" group="float"/>\n <reg name="fop" bitsize="32" type="int" group="float"/>\n</feature>\n Sending packet: $qXfer:features:read:i386-64bit-sse.xml:0,ffb#4a...Ack Packet received: m<?xml version="1.0"?>\n<!-- Copyright (C) 2010-2017 Free Software Foundation, Inc.\n\n Copying and distribution of this file, with or without modification,\n are permitted in any medium without royalty provided the copyright\n notice and this notice are preserved. -->\n\n<!DOCTYPE feature SYSTEM "gdb-target.dtd">\n<feature name="org.gnu.gdb.i386.64bit.sse">\n <vector id="v4f" type="ieee_single" count="4"/>\n <vector id="v2d" type="ieee_double" count="2"/>\n <vector id="v16i8" type="int8" count="16"/>\n <vector id="v8i16" type="int16" count="8"/>\n <vector id="v4i32" type="int32" count="4"/>\n <vector id="v2i64" type="int64" count="2"/>\n <union id="vec128">\n <field name="v4_float" type="v4f"/>\n <field name="v2_double" type="v2d"/>\n <field name="v16_int8" type="v16i8"/>\n <field name="v8_int16" type="v8i16"/>\n <field name="v4_int32" type="v4i32"/>\n <field name="v2_int64" type="v2i64"/>\n <field name="uint128" type="uint128"/>\n </union>\n <flags id="i386_mxcsr" size="4">\n <field name="IE" start="0" end="0"/>\n <field name="DE" start="1" end="1"/>\n <field name="ZE" start="2" end="2"/>\n <field name="OE" start="3" end="3"/>\n <field name="UE" start="4" end="4"/>\n <field name="PE" start="5" end="5"/>\n <field name="DAZ" start="6" end="6"/>\n <field name="IM" start="7" end="7"/>\n <field name="DM" start="8" end="8"/>\n <field name="ZM" start="9" end="9"/>\n <field name="OM" start="10" end="10"/>\n <field name="UM" start="11" end="11"/>\n <field name="PM" start="12" end="12"/>\n <field name="FZ" start="15" end="15"/>\n </flags>\n\n <reg name="xmm0" bitsize="128" type="vec128" regnum="40"/>\n <reg name="xmm1" bitsize="128" type="vec128"/>\n <reg name="xmm2" bitsize="128" type="vec128"/>\n <reg name="xmm3" bitsize="128" type="vec128"/>\n <reg name="xmm4" bitsize="128" type="vec128"/>\n <reg name="xmm5" bitsize="128" type="vec128"/>\n <reg name="xmm6" bitsize="128" type="vec128"/>\n <reg name="xmm7" bitsize="128" type="vec128"/>\n <reg name="xmm8" bitsize="128" type Sending packet: $qXfer:features:read:i386-64bit-sse.xml:7fd,802#87...Ack Packet received: l="vec128"/>\n <reg name="xmm9" bitsize="128" type="vec128"/>\n <reg name="xmm10" bitsize="128" type="vec128"/>\n <reg name="xmm11" bitsize="128" type="vec128"/>\n <reg name="xmm12" bitsize="128" type="vec128"/>\n <reg name="xmm13" bitsize="128" type="vec128"/>\n <reg name="xmm14" bitsize="128" type="vec128"/>\n <reg name="xmm15" bitsize="128" type="vec128"/>\n\n <reg name="mxcsr" bitsize="32" type="i386_mxcsr" group="vector"/>\n</feature>\n Sending packet: $qTStatus#49...Ack Packet received: Packet qTStatus (trace-status) is NOT supported Sending packet: $?#3f...Ack Packet received: T05thread:01; Sending packet: $qfThreadInfo#bb...Ack Packet received: m1 Sending packet: $qAttached#8f...Ack Packet received: 1 Packet qAttached (query-attached) is supported Sending packet: $qsThreadInfo#c8...Ack Packet received: m2 Sending packet: $qsThreadInfo#c8...Ack Packet received: m3 Sending packet: $qsThreadInfo#c8...Ack Packet received: m4 Sending packet: $qsThreadInfo#c8...Ack Packet received: l Sending packet: $Hc-1#09...Ack Packet received: OK Sending packet: $g#67...Ack Packet received: 000000000000000020c4613d8088ffff00000000000000000100000000000000a4aa0981ffffffff0e000080000000000000000000000000a03e2082ffffffff00000000000000000100000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000bfaa0981ffffffff4602000010000000180000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007f030000000000000000000000000000000000000000000000000000000000000000ff000000000000000000ff0000007465006875706f6e6578697400696e740000000000000000ffffffff000000000000000000000000000000000000000000ff0000ffffffff00000000ffffffff0000000000000000000000000000000000000000000000000000000000000000202020202020202020202020202020200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ff0000ffffffff00000000ffffffff000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000801f0000 Sending packet: $mffffffff8109aabf,1#56...Ack Packet received: 5b Sending packet: $mffffffff8109aabf,1#56...Ack Packet received: 5b Sending packet: $mffffffff8109aabf,9#5e...Ack Packet received: 5b5dc331c089c1fb0f 0xffffffff8109aabf in ?? () (gdb) stepi Sending packet: $vCont?#49...Ack Packet received: vCont;c;C;s;S Packet vCont (verbose-resume) is supported Sending packet: $vCont;s:1;c#c1...Ack Packet received: E22 warning: Remote failure reply: E22 Sending packet: $g#67...Ack Packet received: 000000000000000020c4613d8088ffff00000000000000000100000000000000a4aa0981ffffffff0e000080000000000000000000000000a03e2082ffffffff00000000000000000100000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000bfaa0981ffffffff4602000010000000180000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007f030000000000000000000000000000000000000000000000000000000000000000ff000000000000000000ff0000007465006875706f6e6578697400696e740000000000000000ffffffff000000000000000000000000000000000000000000ff0000ffffffff00000000ffffffff0000000000000000000000000000000000000000000000000000000000000000202020202020202020202020202020200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ff0000ffffffff00000000ffffffff000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000801f0000 Sending packet: $mffffffff8109aabf,1#56...Ack Packet received: 5b Sending packet: $mffffffff8109aabf,1#56...Ack Packet received: 5b Sending packet: $mffffffff8109aabf,9#5e...Ack Packet received: 5b5dc331c089c1fb0f [Thread 1] #1 stopped. 0xffffffff8109aabf in ?? () Jan -- Siemens AG, Corporate Technology, CT RDA IOT SES-DE Corporate Competence Center Embedded Linux