On Mon, Jun 17, 2024 at 05:34:36PM -0700, Douglas Anderson wrote:
> The documentation for the variouis "md" commands was inconsistent
> about documenting the command arguments. It was also hard to figure
> out what the differences between the "phys", "raw", and "symbolic"
> versions was.
>
> Update the help strings to make things more obvious.
>
> As part of this, add "bogus" commands to the table for "mdW" and
> "mdWcN" so we don't have to obscurely reference them in the normal
> "md" help. These bogus commands don't really hurt since kdb_md()
> validates argv[0] enough.
>
> Signed-off-by: Douglas Anderson <diand...@chromium.org>
> ---
>
>  kernel/debug/kdb/kdb_main.c | 39 ++++++++++++++++++++++---------------
>  1 file changed, 23 insertions(+), 16 deletions(-)
>
> diff --git a/kernel/debug/kdb/kdb_main.c b/kernel/debug/kdb/kdb_main.c
> index cbeb203785b4..47e037c3c002 100644
> --- a/kernel/debug/kdb/kdb_main.c
> +++ b/kernel/debug/kdb/kdb_main.c
> @@ -1516,14 +1516,9 @@ static int kdb_mdr(unsigned long addr, unsigned int 
> count)
>  }
>
>  /*
> - * kdb_md - This function implements the 'md', 'md1', 'md2', 'md4',
> - *   'md8' 'mdr' and 'mds' commands.
> + * kdb_md - This function implements the guts of the various 'md' commands.
>   *
> - *   md|mds  [<addr arg> [<line count> [<radix>]]]
> - *   mdWcN   [<addr arg> [<line count> [<radix>]]]
> - *           where W = is the width (1, 2, 4 or 8) and N is the count.
> - *           for eg., md1c20 reads 20 bytes, 1 at a time.
> - *   mdr  <addr arg>,<byte count>
> + * See the kdb help for syntax.
>   */
>  static void kdb_md_line(const char *fmtstr, unsigned long addr,
>                       int symbolic, int nosect, int bytesperword,
> @@ -2677,26 +2672,38 @@ EXPORT_SYMBOL_GPL(kdb_unregister);
>  static kdbtab_t maintab[] = {
>       {       .name = "md",
>               .func = kdb_md,
> -             .usage = "<vaddr>",
> -             .help = "Display Memory Contents, also mdWcN, e.g. md8c1",
> +             .usage = "<vaddr> [<lines> [<radix>]]",
> +             .help = "Display RAM using BYTESPERWORD; show MDCOUNT lines",

I'd prefer "memory" over "RAM" because it's what the mnemonic is
abbreviating. This applies to all of the below but I won't be adding a
"same here" for all of them.

Where we have to crush something to fit into one line we'd than have to
break the pattern and choose from thing like:

1. Show memory
2. Display RAM
3. Display mem

Personally I prefer #1 but could probably cope with #2.


>               .flags = KDB_ENABLE_MEM_READ | KDB_REPEAT_NO_ARGS,
>       },
> -     {       .name = "mdr",
> +     {       .name = "mdW",
>               .func = kdb_md,
> -             .usage = "<vaddr> <bytes>",
> -             .help = "Display Raw Memory",
> +             .usage = "<vaddr> [<lines> [<radix>]]",
> +             .help = "Display RAM using word size (W) of 1, 2, 4, or 8",

We need an "e.g. md8" in here somewhere. Otherwise it is not at all
obvious that W is a wildcard.

I guess that alternatively you could also try naming the command with
hint that W is a wild card (what happens if you register a command
called md<W>?).


> +             .flags = KDB_ENABLE_MEM_READ | KDB_REPEAT_NO_ARGS,
> +     },
> +     {       .name = "mdWcN",
> +             .func = kdb_md,
> +             .usage = "<vaddr> [<lines> [<radix>]]",
> +             .help = "Display RAM using word size (W); show N words",

Same here.


>               .flags = KDB_ENABLE_MEM_READ | KDB_REPEAT_NO_ARGS,
>       },
>       {       .name = "mdp",
>               .func = kdb_md,
> -             .usage = "<paddr> <bytes>",
> -             .help = "Display Physical Memory",
> +             .usage = "<paddr> [<lines> [<radix>]]",
> +             .help = "Display RAM given a physical address",
> +             .flags = KDB_ENABLE_MEM_READ | KDB_REPEAT_NO_ARGS,
> +     },
> +     {       .name = "mdr",
> +             .func = kdb_md,
> +             .usage = "<vaddr> <bytes>",
> +             .help = "Display RAM as a stream of raw bytes",
>               .flags = KDB_ENABLE_MEM_READ | KDB_REPEAT_NO_ARGS,
>       },
>       {       .name = "mds",
>               .func = kdb_md,
> -             .usage = "<vaddr>",
> -             .help = "Display Memory Symbolically",
> +             .usage = "<vaddr> [<lines>]",
> +             .help = "Display RAM 1 native word/line; find words in 
> kallsyms",
>               .flags = KDB_ENABLE_MEM_READ | KDB_REPEAT_NO_ARGS,
>       },
>       {       .name = "mm",
> --
> 2.45.2.627.g7a2c4fd464-goog
>


_______________________________________________
Kgdb-bugreport mailing list
Kgdb-bugreport@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/kgdb-bugreport

Reply via email to