[Pdbg] [PATCH 01/14] gdbserver: update gdb_parser_precompile.c, rename detach command

Joel Stanley joel at jms.id.au
Wed Mar 16 10:13:33 AEDT 2022


On Mon, 14 Mar 2022 at 04:18, Nicholas Piggin <npiggin at gmail.com> wrote:
>
> gdb_parser_precompile.c had not been updated since adding support for
> the detach command, resulting in client error messages like this:
>
>   Detaching from program: /home/npiggin/images/vmlinux, process 42000
>   Remote doesn't know how to detach
>
> The command handler should not be named disconnect, because that is a
> different concept in gdb (disconnect leaves the target in the same
> state, detach ends the debugging session).
>
> Signed-off-by: Nicholas Piggin <npiggin at gmail.com>
> ---
>  src/gdb_parser.rl           |   4 +-
>  src/gdb_parser_precompile.c | 231 ++++++++++++++++++------------------
>  src/pdbgproxy.c             |   6 +-
>  src/pdbgproxy.h             |   2 +-
>  4 files changed, 124 insertions(+), 119 deletions(-)
>
> diff --git a/src/gdb_parser.rl b/src/gdb_parser.rl
> index 6259b96..93213e4 100644
> --- a/src/gdb_parser.rl
> +++ b/src/gdb_parser.rl
> @@ -76,7 +76,7 @@
>
>         set_thread = ('H' any* @{cmd = SET_THREAD;});
>
> -       disconnect = ('D' @{cmd = DISCONNECT;}
> +       detach = ('D' @{cmd = DETACH;}
>                      xdigit+ $hex_digit %push);
>
>         # TODO: We don't actually listen to what's supported
> @@ -94,7 +94,7 @@
>
>         commands = (get_mem | get_gprs | get_spr | stop_reason | set_thread |
>                     q_attached | q_C | q_supported | qf_threadinfo | q_C |
> -                   v_contq | v_contc | v_conts | put_mem | disconnect );
> +                   v_contq | v_contc | v_conts | put_mem | detach );
>
>         cmd = ((commands & ^'#'*) | ^'#'*) $crc
>               ('#' xdigit{2} $hex_digit @end);
> diff --git a/src/gdb_parser_precompile.c b/src/gdb_parser_precompile.c
> index 715cdd7..cee2fd0 100644
> --- a/src/gdb_parser_precompile.c
> +++ b/src/gdb_parser_precompile.c
> @@ -5,10 +5,10 @@
>  #include <string.h>
>  #include <assert.h>
>
> -#include "pdbgproxy.h"
> +#include "src/pdbgproxy.h"
>
>
> -#line 105 "src/gdb_parser.rl"
> +#line 108 "src/gdb_parser.rl"
>
>
>  static enum gdb_command cmd = NONE;
> @@ -29,56 +29,56 @@ static const char _gdb_actions[] = {
>         1, 2, 9, 1, 2, 10, 1, 2,
>         11, 1, 2, 12, 1, 2, 13, 1,
>         2, 14, 1, 2, 15, 1, 2, 16,
> -       1, 2, 17, 1, 2, 18, 0, 3,
> -       1, 18, 0, 3, 6, 2, 1, 3,
> -       6, 3, 1
> +       1, 2, 17, 1, 2, 18, 1, 2,
> +       19, 0, 3, 1, 19, 0, 3, 6,
> +       2, 1, 3, 6, 3, 1
>  };
>
> -static const char _gdb_key_offsets[] = {
> -       0, 0, 2, 13, 14, 20, 26, 29,
> -       37, 45, 46, 53, 61, 68, 77, 84,
> -       92, 99, 107, 114, 121, 126, 128, 130,
> -       132, 134, 136, 138, 140, 142, 149, 151,
> -       153, 155, 157, 159, 161, 163, 165, 167,
> -       168, 170, 172, 174, 176, 178, 180, 182,
> -       184, 186, 188, 190, 192, 194, 196, 199,
> -       202, 203, 204, 206
> +static const unsigned char _gdb_key_offsets[] = {
> +       0, 0, 2, 14, 15, 21, 27, 30,
> +       38, 46, 53, 60, 61, 68, 76, 83,
> +       92, 99, 107, 114, 122, 127, 129, 131,
> +       133, 135, 137, 139, 141, 143, 150, 152,
> +       154, 156, 158, 160, 162, 164, 166, 168,
> +       169, 171, 173, 175, 177, 179, 181, 183,
> +       185, 187, 189, 191, 193, 195, 197, 200,
> +       203, 204, 205, 207

Are these auto generated? How do we update them?

>  };


More information about the Pdbg mailing list