qemu-devel
[Top][All Lists]
Advanced

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

Re: [Qemu-devel] [RFC] qemu-system-arm: cortex-m gdb registers


From: Peter Maydell
Subject: Re: [Qemu-devel] [RFC] qemu-system-arm: cortex-m gdb registers
Date: Mon, 14 Dec 2015 08:31:40 +0000

On 14 December 2015 at 06:36, Christopher Friedt <address@hidden> wrote:
> * allow overriding the default xml descriptor with gdb_xml_descriptor()
> * read cortex-m registers using arm_cortexm_gdb_read_register()
> * write cortex-m registers using arm_cortexm_gdb_write_register()
> * correct the number of cortex-m core regs to 23
>
> Signed-off-by: Christopher Friedt <address@hidden>
> ---
>  gdbstub.c            |  29 ++++---
>  include/qom/cpu.h    |   1 +
>  target-arm/cpu-qom.h |   4 +
>  target-arm/cpu.c     |   5 +-
>  target-arm/gdbstub.c | 215 
> +++++++++++++++++++++++++++++++++++++++++++++++++++
>  5 files changed, 241 insertions(+), 13 deletions(-)
>
> diff --git a/gdbstub.c b/gdbstub.c
> index 9c29aa0..4684a4b 100644
> --- a/gdbstub.c
> +++ b/gdbstub.c
> @@ -540,19 +540,24 @@ static const char *get_feature_xml(const char *p, const 
> char **newp,
>              GDBRegisterState *r;
>              CPUState *cpu = first_cpu;
>
> -            snprintf(target_xml, sizeof(target_xml),
> -                     "<?xml version=\"1.0\"?>"
> -                     "<!DOCTYPE target SYSTEM \"gdb-target.dtd\">"
> -                     "<target>"
> -                     "<xi:include href=\"%s\"/>",
> -                     cc->gdb_core_xml_file);
> -
> -            for (r = cpu->gdb_regs; r; r = r->next) {
> -                pstrcat(target_xml, sizeof(target_xml), "<xi:include 
> href=\"");
> -                pstrcat(target_xml, sizeof(target_xml), r->xml);
> -                pstrcat(target_xml, sizeof(target_xml), "\"/>");
> +            if (cc->gdb_xml_descriptor) {
> +                cc->gdb_xml_descriptor(cpu, target_xml, sizeof(target_xml));
> +            } else {
> +                snprintf(target_xml, sizeof(target_xml),
> +                         "<?xml version=\"1.0\"?>"
> +                         "<!DOCTYPE target SYSTEM \"gdb-target.dtd\">"
> +                         "<target>"
> +                         "<xi:include href=\"%s\"/>",
> +                         cc->gdb_core_xml_file);
> +
> +                for (r = cpu->gdb_regs; r; r = r->next) {
> +                    pstrcat(target_xml, sizeof(target_xml),
> +                        "<xi:include href=\"");
> +                    pstrcat(target_xml, sizeof(target_xml), r->xml);
> +                    pstrcat(target_xml, sizeof(target_xml), "\"/>");
> +                }
> +                pstrcat(target_xml, sizeof(target_xml), "</target>");

This patch seems to be creating a completely new method of
constructing the XML to send to gdb. Is it really not possible
to do this using the existing mechanisms we have for selecting
XML to send to gdb and handling the registers it implies?

thanks
-- PMM



reply via email to

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