qemu-devel
[Top][All Lists]
Advanced

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

Re: [PATCH V5 9/9] gdbstub: Add helper function to unregister GDB regist


From: Gavin Shan
Subject: Re: [PATCH V5 9/9] gdbstub: Add helper function to unregister GDB register space
Date: Thu, 12 Oct 2023 10:07:12 +1000
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.15.1

Hi Salil,

On 10/12/23 05:43, Salil Mehta wrote:
Add common function to help unregister the GDB Register Space. This shall be
done in context to the CPU unrealization.

Signed-off-by: Salil Mehta <salil.mehta@huawei.com>
Tested-by: Vishnu Pajjuri <vishnu@os.amperecomputing.com>
---
  gdbstub/gdbstub.c      | 15 +++++++++++++++
  include/exec/gdbstub.h |  5 +++++
  2 files changed, 20 insertions(+)


With the following nits addressed:

Reviewed-by: Gavin Shan <gshan@redhat.com>

diff --git a/gdbstub/gdbstub.c b/gdbstub/gdbstub.c
index 349d348c7b..97b89e2d00 100644
--- a/gdbstub/gdbstub.c
+++ b/gdbstub/gdbstub.c
@@ -491,6 +491,21 @@ void gdb_register_coprocessor(CPUState *cpu,
      }
  }
+void gdb_unregister_coprocessor_all(CPUState *cpu)
+{
+    GDBRegisterState *s, *p;
+
+    p = cpu->gdb_regs;
+    while (p) {
+        s = p;
+        p = p->next;
+        /* s->xml is static const char so isn't freed */
+        g_free(s);
+    }
+    cpu->gdb_regs = NULL;

       cpu->base_reg = 0;
       cpu->num_regs = 0;

+    cpu->gdb_num_g_regs = 0;
+}
+
  static void gdb_process_breakpoint_remove_all(GDBProcess *p)
  {
      CPUState *cpu = gdb_get_first_cpu_in_process(p);
diff --git a/include/exec/gdbstub.h b/include/exec/gdbstub.h
index 16a139043f..7d1368d377 100644
--- a/include/exec/gdbstub.h
+++ b/include/exec/gdbstub.h
@@ -27,6 +27,11 @@ typedef int (*gdb_set_reg_cb)(CPUArchState *env, uint8_t 
*buf, int reg);
  void gdb_register_coprocessor(CPUState *cpu,
                                gdb_get_reg_cb get_reg, gdb_set_reg_cb set_reg,
                                int num_regs, const char *xml, int g_pos);
+/**
+ * gdb_unregister_coprocessor_all() - unregisters supplemental set of registers
+ * @cpu - the CPU associated with registers
+ */
+void gdb_unregister_coprocessor_all(CPUState *cpu);
/**
   * gdbserver_start: start the gdb server

Thanks,
Gavin




reply via email to

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