help text of aliased commands using "with"

Simon Sobisch simonsobisch@gnu.org
Thu Jun 9 09:27:37 GMT 2022


Using aliases works fine in general; the help only works if there's a 
direct alias.

1 direct alias - nearly fine help:

(gdb) alias asdf = print
(gdb) help asdf
print, asdf, inspect, p
Print value of expression EXP.
Usage: print [[OPTION]... --] [/FMT] [EXP]
[... rest of print help]


2 alias with default arguments - perfect

(gdb) alias asdfa = print -elements unlimited -elements unlimited
(gdb) help asdfa
print, asdfa, asdf, inspect, p
  alias asdfa = print -elements unlimited -elements unlimited
Print value of expression EXP.
Usage: print [[OPTION]... --] [/FMT] [EXP]
[... rest of print help]


3 alias with potentially nested "with", seems broken

(gdb) alias -- asdfw = with print elements unlimited -- with print \
       repeats unlimited -- print
(gdb) help asdfw
with, asdfw, w
   alias asdfw = with print elements unlimited -- with print repeats 
unlimited -- print
Temporarily set SETTING to VALUE, run COMMAND, and restore SETTING.
Usage: with SETTING [VALUE] [-- COMMAND]
Usage: w SETTING [VALUE] [-- COMMAND]
With no COMMAND, repeats the last executed command.

SETTING is any setting you can change with the "set" subcommands.
E.g.:
with language pascal -- print obj
with print elements unlimited -- print obj

You can change multiple settings using nested with, and use
abbreviations for commands and/or values.  E.g.:
   w la p -- w p el u -- p obj



The second one is better than the first, as it lists the alias, too.


The third one shows that the alias is considered to be aliasing the 
"with" command, which is technically understandable, but from a 
user-point of view it is still the COMMAND that is aliased (in this case 
"print").


Questions:

1 Can the alias always be printed? scenario 1 misses the line
   alias asdf = print"
   I guess that's possibly a small bug fix.

2 Is it possible to adjust "alias --" to let its help point to the
   actual COMMAND?
   Preferably with the help for the parameters requested?

Draft output (as in scenario 2 + output of the "with" entries as shown 
with "help set print elements unlimited"):

(gdb) help asdfw
print, asdfa, asdfw, asdf, inspect, p
  alias -- asdfw = with print elements unlimited
                -- with print repeats unlimited
                print

Print value of expression EXP.
Usage: print [[OPTION]... --] [/FMT] [EXP]
[... rest of print help]

  print repeats unlimited
Set threshold for repeated print elements.
"unlimited" causes all elements to be individually printed.

  print elements unlimited
Set limit on string chars or array elements to print.
"unlimited" causes there to be no limit.


3 If this isn't possible then could the help of "alias --" entries be 
adjusted to "just show the alias? Draft output for that:

(gdb) help asdfw
  alias -- asdfw = with print elements unlimited
                -- with print repeats unlimited
                print
Do "help with", "help print" for info on commands executed.


Simon


More information about the Gdb mailing list