[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: |
Alex Bennée |
Subject: |
Re: [Qemu-devel] [PATCH v9 20/27] gdbstub: Implement target halted (? pkt) with new infra |
Date: |
Mon, 20 May 2019 13:54:59 +0100 |
User-agent: |
mu4e 1.3.2; emacs 26.1 |
Jon Doron <address@hidden> writes:
> 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?
Actually I think you can delete the comment and mention the thread-id
has been correctly reported in usermode since bd88c780e6
>
>> > + 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
--
Alex Bennée
- [Qemu-devel] [PATCH v9 06/27] gdbstub: Implement set_thread (H pkt) 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