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 09/27] gdbstub: Implement set register (P pkt) with new infra Date: Thu, 2 May 2019 10:26:23 +0300 [thread overview] Message-ID: <20190502072641.4667-10-arilou@gmail.com> (raw) In-Reply-To: <20190502072641.4667-1-arilou@gmail.com> Signed-off-by: Jon Doron <arilou@gmail.com> --- gdbstub.c | 39 ++++++++++++++++++++++++++++++--------- 1 file changed, 30 insertions(+), 9 deletions(-) diff --git a/gdbstub.c b/gdbstub.c index b42425b24c..10e3f12a68 100644 --- a/gdbstub.c +++ b/gdbstub.c @@ -1634,6 +1634,27 @@ static void handle_remove_bp(GdbCmdContext *gdb_ctx, void *user_ctx) put_packet(gdb_ctx->s, "E22"); } +static void handle_set_reg(GdbCmdContext *gdb_ctx, void *user_ctx) +{ + int reg_size; + + if (!gdb_has_xml) { + put_packet(gdb_ctx->s, ""); + return; + } + + if (gdb_ctx->num_params < 2) { + put_packet(gdb_ctx->s, ""); + return; + } + + reg_size = strlen(gdb_ctx->params[1].data) / 2; + hextomem(gdb_ctx->mem_buf, gdb_ctx->params[1].data, reg_size); + gdb_write_register(gdb_ctx->s->g_cpu, gdb_ctx->mem_buf, + gdb_ctx->params[0].val_ull); + put_packet(gdb_ctx->s, "OK"); +} + static int gdb_handle_packet(GDBState *s, const char *line_buf) { CPUState *cpu; @@ -1878,15 +1899,15 @@ static int gdb_handle_packet(GDBState *s, const char *line_buf) } break; case 'P': - if (!gdb_has_xml) - goto unknown_command; - addr = strtoull(p, (char **)&p, 16); - if (*p == '=') - p++; - reg_size = strlen(p) / 2; - hextomem(mem_buf, p, reg_size); - gdb_write_register(s->g_cpu, mem_buf, addr); - put_packet(s, "OK"); + { + static const GdbCmdParseEntry set_reg_cmd_desc = { + .handler = handle_set_reg, + .cmd = "P", + .cmd_startswith = 1, + .schema = "L?s0" + }; + cmd_parser = &set_reg_cmd_desc; + } break; case 'Z': { -- 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 09/27] gdbstub: Implement set register (P pkt) with new infra Date: Thu, 2 May 2019 10:26:23 +0300 [thread overview] Message-ID: <20190502072641.4667-10-arilou@gmail.com> (raw) Message-ID: <20190502072623.rE8u3rHWaIzY0y_MX4UTuEpSWocfdc1PjLfMgAw-kF8@z> (raw) In-Reply-To: <20190502072641.4667-1-arilou@gmail.com> Signed-off-by: Jon Doron <arilou@gmail.com> --- gdbstub.c | 39 ++++++++++++++++++++++++++++++--------- 1 file changed, 30 insertions(+), 9 deletions(-) diff --git a/gdbstub.c b/gdbstub.c index b42425b24c..10e3f12a68 100644 --- a/gdbstub.c +++ b/gdbstub.c @@ -1634,6 +1634,27 @@ static void handle_remove_bp(GdbCmdContext *gdb_ctx, void *user_ctx) put_packet(gdb_ctx->s, "E22"); } +static void handle_set_reg(GdbCmdContext *gdb_ctx, void *user_ctx) +{ + int reg_size; + + if (!gdb_has_xml) { + put_packet(gdb_ctx->s, ""); + return; + } + + if (gdb_ctx->num_params < 2) { + put_packet(gdb_ctx->s, ""); + return; + } + + reg_size = strlen(gdb_ctx->params[1].data) / 2; + hextomem(gdb_ctx->mem_buf, gdb_ctx->params[1].data, reg_size); + gdb_write_register(gdb_ctx->s->g_cpu, gdb_ctx->mem_buf, + gdb_ctx->params[0].val_ull); + put_packet(gdb_ctx->s, "OK"); +} + static int gdb_handle_packet(GDBState *s, const char *line_buf) { CPUState *cpu; @@ -1878,15 +1899,15 @@ static int gdb_handle_packet(GDBState *s, const char *line_buf) } break; case 'P': - if (!gdb_has_xml) - goto unknown_command; - addr = strtoull(p, (char **)&p, 16); - if (*p == '=') - p++; - reg_size = strlen(p) / 2; - hextomem(mem_buf, p, reg_size); - gdb_write_register(s->g_cpu, mem_buf, addr); - put_packet(s, "OK"); + { + static const GdbCmdParseEntry set_reg_cmd_desc = { + .handler = handle_set_reg, + .cmd = "P", + .cmd_startswith = 1, + .schema = "L?s0" + }; + cmd_parser = &set_reg_cmd_desc; + } break; case 'Z': { -- 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 ` Jon Doron [this message] 2019-05-02 7:26 ` [Qemu-devel] [PATCH v8 09/27] gdbstub: Implement set register (P " 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 ` [Qemu-devel] [PATCH v8 14/27] gdbstub: Implement read all registers (g " Jon Doron 2019-05-02 7:26 ` 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-10-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).