From: Jon Doron <arilou@gmail.com> To: qemu-devel@nongnu.org Cc: alex.bennee@linaro.org, liran.alon@oracle.com, Jon Doron <arilou@gmail.com> Subject: [Qemu-devel] [PATCH v8 14/27] gdbstub: Implement read all registers (g pkt) with new infra Date: Thu, 2 May 2019 10:26:28 +0300 [thread overview] Message-ID: <20190502072641.4667-15-arilou@gmail.com> (raw) In-Reply-To: <20190502072641.4667-1-arilou@gmail.com> Signed-off-by: Jon Doron <arilou@gmail.com> --- gdbstub.c | 31 +++++++++++++++++++++++-------- 1 file changed, 23 insertions(+), 8 deletions(-) diff --git a/gdbstub.c b/gdbstub.c index adfe39b3a3..3478ac778d 100644 --- a/gdbstub.c +++ b/gdbstub.c @@ -1757,6 +1757,21 @@ static void handle_write_all_regs(GdbCmdContext *gdb_ctx, void *user_ctx) put_packet(gdb_ctx->s, "OK"); } +static void handle_read_all_regs(GdbCmdContext *gdb_ctx, void *user_ctx) +{ + target_ulong addr, len; + + cpu_synchronize_state(gdb_ctx->s->g_cpu); + len = 0; + for (addr = 0; addr < gdb_ctx->s->g_cpu->gdb_num_g_regs; addr++) { + len += gdb_read_register(gdb_ctx->s->g_cpu, gdb_ctx->mem_buf + len, + addr); + } + + memtohex(gdb_ctx->str_buf, gdb_ctx->mem_buf, len); + put_packet(gdb_ctx->s, gdb_ctx->str_buf); +} + static int gdb_handle_packet(GDBState *s, const char *line_buf) { CPUState *cpu; @@ -1764,7 +1779,7 @@ static int gdb_handle_packet(GDBState *s, const char *line_buf) CPUClass *cc; const char *p; uint32_t pid, tid; - int ch, reg_size, type, res; + int ch, type, res; uint8_t mem_buf[MAX_PACKET_LENGTH]; char buf[sizeof(mem_buf) + 1 /* trailing NUL */]; char thread_id[16]; @@ -1923,14 +1938,14 @@ static int gdb_handle_packet(GDBState *s, const char *line_buf) } break; case 'g': - cpu_synchronize_state(s->g_cpu); - len = 0; - for (addr = 0; addr < s->g_cpu->gdb_num_g_regs; addr++) { - reg_size = gdb_read_register(s->g_cpu, mem_buf + len, addr); - len += reg_size; + { + static const GdbCmdParseEntry read_all_regs_cmd_desc = { + .handler = handle_read_all_regs, + .cmd = "g", + .cmd_startswith = 1 + }; + cmd_parser = &read_all_regs_cmd_desc; } - memtohex(buf, mem_buf, len); - put_packet(s, buf); break; case 'G': { -- 2.20.1
WARNING: multiple messages have this Message-ID (diff)
From: Jon Doron <arilou@gmail.com> To: qemu-devel@nongnu.org Cc: liran.alon@oracle.com, alex.bennee@linaro.org, Jon Doron <arilou@gmail.com> Subject: [Qemu-devel] [PATCH v8 14/27] gdbstub: Implement read all registers (g pkt) with new infra Date: Thu, 2 May 2019 10:26:28 +0300 [thread overview] Message-ID: <20190502072641.4667-15-arilou@gmail.com> (raw) Message-ID: <20190502072628.fiEifGmaL8EX2sB_RAfieknUZzfdOcuFokgZXAwNaG8@z> (raw) In-Reply-To: <20190502072641.4667-1-arilou@gmail.com> Signed-off-by: Jon Doron <arilou@gmail.com> --- gdbstub.c | 31 +++++++++++++++++++++++-------- 1 file changed, 23 insertions(+), 8 deletions(-) diff --git a/gdbstub.c b/gdbstub.c index adfe39b3a3..3478ac778d 100644 --- a/gdbstub.c +++ b/gdbstub.c @@ -1757,6 +1757,21 @@ static void handle_write_all_regs(GdbCmdContext *gdb_ctx, void *user_ctx) put_packet(gdb_ctx->s, "OK"); } +static void handle_read_all_regs(GdbCmdContext *gdb_ctx, void *user_ctx) +{ + target_ulong addr, len; + + cpu_synchronize_state(gdb_ctx->s->g_cpu); + len = 0; + for (addr = 0; addr < gdb_ctx->s->g_cpu->gdb_num_g_regs; addr++) { + len += gdb_read_register(gdb_ctx->s->g_cpu, gdb_ctx->mem_buf + len, + addr); + } + + memtohex(gdb_ctx->str_buf, gdb_ctx->mem_buf, len); + put_packet(gdb_ctx->s, gdb_ctx->str_buf); +} + static int gdb_handle_packet(GDBState *s, const char *line_buf) { CPUState *cpu; @@ -1764,7 +1779,7 @@ static int gdb_handle_packet(GDBState *s, const char *line_buf) CPUClass *cc; const char *p; uint32_t pid, tid; - int ch, reg_size, type, res; + int ch, type, res; uint8_t mem_buf[MAX_PACKET_LENGTH]; char buf[sizeof(mem_buf) + 1 /* trailing NUL */]; char thread_id[16]; @@ -1923,14 +1938,14 @@ static int gdb_handle_packet(GDBState *s, const char *line_buf) } break; case 'g': - cpu_synchronize_state(s->g_cpu); - len = 0; - for (addr = 0; addr < s->g_cpu->gdb_num_g_regs; addr++) { - reg_size = gdb_read_register(s->g_cpu, mem_buf + len, addr); - len += reg_size; + { + static const GdbCmdParseEntry read_all_regs_cmd_desc = { + .handler = handle_read_all_regs, + .cmd = "g", + .cmd_startswith = 1 + }; + cmd_parser = &read_all_regs_cmd_desc; } - memtohex(buf, mem_buf, len); - put_packet(s, buf); break; case 'G': { -- 2.20.1
next prev parent reply other threads:[~2019-05-02 7:29 UTC|newest] Thread overview: 58+ messages / expand[flat|nested] mbox.gz Atom feed top 2019-05-02 7:26 [Qemu-devel] [PATCH v8 00/27] gdbstub: Refactor command packets handler Jon Doron 2019-05-02 7:26 ` Jon Doron 2019-05-02 7:26 ` [Qemu-devel] [PATCH v8 01/27] gdbstub: Add infrastructure to parse cmd packets Jon Doron 2019-05-02 7:26 ` Jon Doron 2019-05-02 7:26 ` [Qemu-devel] [PATCH v8 02/27] gdbstub: Implement deatch (D pkt) with new infra Jon Doron 2019-05-02 7:26 ` Jon Doron 2019-05-02 7:26 ` [Qemu-devel] [PATCH v8 03/27] gdbstub: Implement thread_alive (T " Jon Doron 2019-05-02 7:26 ` Jon Doron 2019-05-02 7:26 ` [Qemu-devel] [PATCH v8 04/27] gdbstub: Implement continue (c " Jon Doron 2019-05-02 7:26 ` Jon Doron 2019-05-02 7:26 ` [Qemu-devel] [PATCH v8 05/27] gdbstub: Implement continue with signal (C " Jon Doron 2019-05-02 7:26 ` Jon Doron 2019-05-02 7:26 ` [Qemu-devel] [PATCH v8 06/27] gdbstub: Implement set_thread (H " Jon Doron 2019-05-02 7:26 ` Jon Doron 2019-05-02 7:26 ` [Qemu-devel] [PATCH v8 07/27] gdbstub: Implement insert breakpoint (Z " Jon Doron 2019-05-02 7:26 ` Jon Doron 2019-05-02 7:26 ` [Qemu-devel] [PATCH v8 08/27] gdbstub: Implement remove breakpoint (z " Jon Doron 2019-05-02 7:26 ` Jon Doron 2019-05-02 7:26 ` [Qemu-devel] [PATCH v8 09/27] gdbstub: Implement set register (P " Jon Doron 2019-05-02 7:26 ` Jon Doron 2019-05-02 7:26 ` [Qemu-devel] [PATCH v8 10/27] gdbstub: Implement get register (p " Jon Doron 2019-05-02 7:26 ` Jon Doron 2019-05-02 7:26 ` [Qemu-devel] [PATCH v8 11/27] gdbstub: Implement write memory (M " Jon Doron 2019-05-02 7:26 ` Jon Doron 2019-05-02 7:26 ` [Qemu-devel] [PATCH v8 12/27] gdbstub: Implement read memory (m " Jon Doron 2019-05-02 7:26 ` Jon Doron 2019-05-02 7:26 ` [Qemu-devel] [PATCH v8 13/27] gdbstub: Implement write all registers (G " Jon Doron 2019-05-02 7:26 ` Jon Doron 2019-05-02 7:26 ` Jon Doron [this message] 2019-05-02 7:26 ` [Qemu-devel] [PATCH v8 14/27] gdbstub: Implement read all registers (g " Jon Doron 2019-05-02 7:26 ` [Qemu-devel] [PATCH v8 15/27] gdbstub: Implement file io (F " Jon Doron 2019-05-02 7:26 ` Jon Doron 2019-05-02 7:26 ` [Qemu-devel] [PATCH v8 16/27] gdbstub: Implement step (s " Jon Doron 2019-05-02 7:26 ` Jon Doron 2019-05-02 7:26 ` [Qemu-devel] [PATCH v8 17/27] gdbstub: Implement v commands " Jon Doron 2019-05-02 7:26 ` Jon Doron 2019-05-02 7:26 ` [Qemu-devel] [PATCH v8 18/27] gdbstub: Implement generic query (q pkt) " Jon Doron 2019-05-02 7:26 ` Jon Doron 2019-05-02 7:26 ` [Qemu-devel] [PATCH v8 19/27] gdbstub: Implement generic set (Q " Jon Doron 2019-05-02 7:26 ` Jon Doron 2019-05-02 7:26 ` [Qemu-devel] [PATCH v8 20/27] gdbstub: Implement target halted (? " Jon Doron 2019-05-02 7:26 ` Jon Doron 2019-05-02 7:26 ` [Qemu-devel] [PATCH v8 21/27] gdbstub: Clear unused variables in gdb_handle_packet Jon Doron 2019-05-02 7:26 ` Jon Doron 2019-05-02 7:26 ` [Qemu-devel] [PATCH v8 22/27] gdbstub: Implement generic query qemu.Supported Jon Doron 2019-05-02 7:26 ` Jon Doron 2019-05-02 7:26 ` [Qemu-devel] [PATCH v8 23/27] gdbstub: Implement qemu physical memory mode Jon Doron 2019-05-02 7:26 ` Jon Doron 2019-05-02 7:26 ` [Qemu-devel] [PATCH v8 24/27] gdbstub: Add another handler for setting qemu.sstep Jon Doron 2019-05-02 7:26 ` Jon Doron 2019-05-02 7:26 ` [Qemu-devel] [PATCH v8 25/27] kvm: Add API to read/write a CPU MSR value Jon Doron 2019-05-02 7:26 ` Jon Doron 2019-05-02 7:26 ` [Qemu-devel] [PATCH v8 26/27] gdbstub: Add support to read a MSR for KVM target Jon Doron 2019-05-02 7:26 ` Jon Doron 2019-05-02 7:26 ` [Qemu-devel] [PATCH v8 27/27] gdbstub: Add support to write " Jon Doron 2019-05-02 7:26 ` Jon Doron 2019-05-02 7:53 ` [Qemu-devel] [PATCH v8 00/27] gdbstub: Refactor command packets handler no-reply 2019-05-02 7:53 ` no-reply
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=20190502072641.4667-15-arilou@gmail.com \ --to=arilou@gmail.com \ --cc=alex.bennee@linaro.org \ --cc=liran.alon@oracle.com \ --cc=qemu-devel@nongnu.org \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).