[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH v9 20/27] gdbstub: Implement target halted (? pk
From: |
Jon Doron |
Subject: |
Re: [Qemu-devel] [PATCH v9 20/27] gdbstub: Implement target halted (? pkt) with new infra |
Date: |
Mon, 20 May 2019 08:32:23 +0300 |
On Wed, May 15, 2019 at 8:20 PM Alex Bennée <address@hidden> wrote:
>
>
> Jon Doron <address@hidden> writes:
>
> > Signed-off-by: Jon Doron <address@hidden>
> > ---
> > gdbstub.c | 36 ++++++++++++++++++++++++++----------
> > 1 file changed, 26 insertions(+), 10 deletions(-)
> >
> > diff --git a/gdbstub.c b/gdbstub.c
> > index 2fd0d66f4d..d678191705 100644
> > --- a/gdbstub.c
> > +++ b/gdbstub.c
> > @@ -2239,13 +2239,30 @@ static void handle_gen_set(GdbCmdContext *gdb_ctx,
> > void *user_ctx)
> > put_packet(gdb_ctx->s, "");
> > }
> >
> > +static void handle_target_halt(GdbCmdContext *gdb_ctx, void *user_ctx)
> > +{
> > + char thread_id[16];
> > +
> > + /* TODO: Make this return the correct value for user-mode. */
>
> Can this be cleaned up as we convert?
>
To be honest i have no idea what the "correct value" is or how to get
it, can you tell me what it should be and ill add it to the patch?
> > + gdb_fmt_thread_id(gdb_ctx->s, gdb_ctx->s->c_cpu, thread_id,
> > + sizeof(thread_id));
> > + snprintf(gdb_ctx->str_buf, sizeof(gdb_ctx->str_buf), "T%02xthread:%s;",
> > + GDB_SIGNAL_TRAP, thread_id);
> > + put_packet(gdb_ctx->s, gdb_ctx->str_buf);
> > + /*
> > + * Remove all the breakpoints when this query is issued,
> > + * because gdb is doing and initial connect and the state
>
> s/and/an/
>
> > + * should be cleaned up.
> > + */
> > + gdb_breakpoint_remove_all();
> > +}
> > +
> > static int gdb_handle_packet(GDBState *s, const char *line_buf)
> > {
> > const char *p;
> > int ch;
> > uint8_t mem_buf[MAX_PACKET_LENGTH];
> > char buf[sizeof(mem_buf) + 1 /* trailing NUL */];
> > - char thread_id[16];
> > const GdbCmdParseEntry *cmd_parser = NULL;
> >
> > trace_gdbstub_io_command(line_buf);
> > @@ -2257,15 +2274,14 @@ static int gdb_handle_packet(GDBState *s, const
> > char *line_buf)
> > put_packet(s, "OK");
> > break;
> > case '?':
> > - /* TODO: Make this return the correct value for user-mode. */
> > - snprintf(buf, sizeof(buf), "T%02xthread:%s;", GDB_SIGNAL_TRAP,
> > - gdb_fmt_thread_id(s, s->c_cpu, thread_id,
> > sizeof(thread_id)));
> > - put_packet(s, buf);
> > - /* Remove all the breakpoints when this query is issued,
> > - * because gdb is doing and initial connect and the state
> > - * should be cleaned up.
> > - */
> > - gdb_breakpoint_remove_all();
> > + {
> > + static const GdbCmdParseEntry target_halted_cmd_desc = {
> > + .handler = handle_target_halt,
> > + .cmd = "?",
> > + .cmd_startswith = 1
> > + };
> > + cmd_parser = &target_halted_cmd_desc;
> > + }
> > break;
> > case 'c':
> > {
>
>
> --
> Alex Bennée
- Re: [Qemu-devel] [PATCH v9 17/27] gdbstub: Implement v commands with new infra, (continued)
- [Qemu-devel] [PATCH v9 12/27] gdbstub: Implement read memory (m pkt) with new infra, Jon Doron, 2019/05/02
- [Qemu-devel] [PATCH v9 16/27] gdbstub: Implement step (s pkt) with new infra, Jon Doron, 2019/05/02
- [Qemu-devel] [PATCH v9 08/27] gdbstub: Implement remove breakpoint (z pkt) with new infra, Jon Doron, 2019/05/02
- [Qemu-devel] [PATCH v9 11/27] gdbstub: Implement write memory (M pkt) with new infra, Jon Doron, 2019/05/02
- [Qemu-devel] [PATCH v9 23/27] gdbstub: Implement qemu physical memory mode, Jon Doron, 2019/05/02