qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH v8 05/16] gdbstub: add multiprocess support to v


From: Jan Kiszka
Subject: Re: [Qemu-devel] [PATCH v8 05/16] gdbstub: add multiprocess support to vCont packets
Date: Fri, 22 Mar 2019 14:29:10 +0100
User-agent: Mozilla/5.0 (X11; U; Linux i686 (x86_64); de; rv:1.8.1.12) Gecko/20080226 SUSE/2.0.0.12-1.1 Thunderbird/2.0.0.12 Mnenhy/0.7.5.666

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 <address@hidden>
> Reviewed-by: Philippe Mathieu-Daudé <address@hidden>
> Reviewed-by: Edgar E. Iglesias <address@hidden>
> Acked-by: Alistair Francis <address@hidden>
> ---
>   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

reply via email to

[Prev in Thread] Current Thread [Next in Thread]