[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH V2 09/10] gdbstub: Add helper function to unregister GDB regi
From: |
Gavin Shan |
Subject: |
Re: [PATCH V2 09/10] gdbstub: Add helper function to unregister GDB register space |
Date: |
Tue, 3 Oct 2023 13:16:49 +1000 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.15.1 |
On 9/30/23 10:19, 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>
---
gdbstub/gdbstub.c | 14 ++++++++++++++
include/exec/gdbstub.h | 5 +++++
2 files changed, 19 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..89ac0edfea 100644
--- a/gdbstub/gdbstub.c
+++ b/gdbstub/gdbstub.c
@@ -491,6 +491,20 @@ 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 */
^^^
string so that it needn't be freed
+ g_free(s);
+ }
+ cpu->gdb_regs = NULL;
+}
+
For consistency, CPUState::gdb_num_regs and CPUState::gdb_num_g_regs
need to be updated accordingly, even the CPU instance will be destroyed
shortly.
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
- Re: [PATCH V2 09/10] gdbstub: Add helper function to unregister GDB register space,
Gavin Shan <=