Ensure class_alias is only used for user-defined aliases.

This commit finally does the (small) change that started this patch
series.

It ensures that the class_alias is only used for user-defined aliases.
So, the few GDB pre-defined aliases that were using the 'class_alias'
class are now using a real help class, typically the class of
the aliased command.

gdb/ChangeLog

2020-05-15  Philippe Waroquiers  <philippe.waroquiers@skynet.be>

	* command.h (enum command_class): Improve comments, document
	that class_alias is for user-defined aliases, give the class
	name for each class, remove unused class_xdb.
	* cli/cli-decode.c (add_com_alias): Document THECLASS intended usage.
	* breakpoint.c (_initialize_breakpoint): Replace class_alias
	by a precise class.
	* infcmd.c (_initialize_infcmd): Likewise.
	* reverse.c (_initialize_reverse): Likewise.
	* stack.c (_initialize_stack): Likewise.
	* symfile.c (_initialize_symfile): Likewise.
	* tracepoint.c (_initialize_tracepoint): Likewise.

gdb/testsuite/ChangeLog

2020-05-15  Philippe Waroquiers  <philippe.waroquiers@skynet.be>

	* gdb.base/alias.exp: Verify 'help aliases' shows user defined aliases.
This commit is contained in:
Philippe Waroquiers
2020-05-10 21:36:14 +02:00
parent 7c05caf72d
commit 57b4f16e49
11 changed files with 81 additions and 32 deletions

View File

@ -29,21 +29,46 @@ struct completion_tracker;
/* Command classes are top-level categories into which commands are
broken down for "help" purposes.
Notes on classes: class_alias is for alias commands which are not
abbreviations of the original command. class-pseudo is for
commands which are not really commands nor help topics ("stop"). */
The class_alias is used for the user-defined aliases, defined
using the "alias" command.
Aliases pre-defined by GDB (e.g. the alias "bt" of the "backtrace" command)
are not using the class_alias.
Different pre-defined aliases of the same command do not necessarily
have the same classes. For example, class_stack is used for the
"backtrace" and its "bt" alias", while "info stack" (also an alias
of "backtrace" uses class_info. */
enum command_class
{
/* Special args to help_list */
class_deprecated = -3, all_classes = -2, all_commands = -1,
/* Classes of commands followed by a comment giving the name
to use in "help <classname>".
Note that help accepts unambiguous abbreviated class names. */
/* Special classes to help_list */
class_deprecated = -3,
all_classes = -2, /* help without <classname> */
all_commands = -1, /* all */
/* Classes of commands */
no_class = -1, class_run = 0, class_vars, class_stack, class_files,
class_support, class_info, class_breakpoint, class_trace,
class_alias, class_bookmark, class_obscure, class_maintenance,
class_tui, class_user, class_xdb,
no_set_class /* Used for "show" commands that have no corresponding
"set" command. */
no_class = -1,
class_run = 0, /* running */
class_vars, /* data */
class_stack, /* stack */
class_files, /* files */
class_support, /* support */
class_info, /* status */
class_breakpoint, /* breakpoints */
class_trace, /* tracepoints */
class_alias, /* aliases */
class_bookmark,
class_obscure, /* obscure */
class_maintenance, /* internals */
class_tui,
class_user, /* user-defined */
/* Used for "show" commands that have no corresponding "set" command. */
no_set_class
};
/* FIXME: cagney/2002-03-17: Once cmd_type() has been removed, ``enum