From 4fd6c7e872c3ab3adbca73d7fa76fed627bca890 Mon Sep 17 00:00:00 2001 From: Tom Tromey Date: Mon, 11 May 2020 15:28:12 -0600 Subject: [PATCH] Restore info_command and breakpoint As discussed on gdb-patches, this restores info_command and the breakpoint on info_command in gdb-gdb.gdb. This reverts a tiny part of 0743fc83c03 ("Replace most calls to help_list and cmd_show_list"), as well as 652fc23a30a ("Remove gdb-gdb.gdb breakpoint on disappeared function info_command."). gdb/ChangeLog 2020-05-11 Tom Tromey * cli/cli-cmds.c (info_command): Restore. (_initialize_cli_cmds): Use add_prefix_command for "info". * gdb-gdb.gdb.in: Restore breakpoint on info_command. --- gdb/ChangeLog | 6 ++++++ gdb/cli/cli-cmds.c | 15 +++++++++++++-- gdb/gdb-gdb.gdb.in | 9 +++++++++ 3 files changed, 28 insertions(+), 2 deletions(-) diff --git a/gdb/ChangeLog b/gdb/ChangeLog index c88961fac1a..3db87b99d5d 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,9 @@ +2020-05-11 Tom Tromey + + * cli/cli-cmds.c (info_command): Restore. + (_initialize_cli_cmds): Use add_prefix_command for "info". + * gdb-gdb.gdb.in: Restore breakpoint on info_command. + 2020-05-11 Tom Tromey * ada-lang.c (ada_value_primitive_field): Now public. diff --git a/gdb/cli/cli-cmds.c b/gdb/cli/cli-cmds.c index 1b677f5d7a1..104d273812f 100644 --- a/gdb/cli/cli-cmds.c +++ b/gdb/cli/cli-cmds.c @@ -191,6 +191,17 @@ error_no_arg (const char *why) error (_("Argument required (%s)."), why); } +/* This implements the "info" prefix command. Normally such commands + are automatically handled by add_basic_prefix_cmd, but in this case + a separate command is used so that it can be hooked into by + gdb-gdb.gdb. */ + +static void +info_command (const char *arg, int from_tty) +{ + help_list (infolist, "info ", all_commands, gdb_stdout); +} + /* See cli/cli-cmds.h. */ void @@ -2189,9 +2200,9 @@ Without an argument, history expansion is enabled."), show_history_expansion_p, &sethistlist, &showhistlist); - add_basic_prefix_cmd ("info", class_info, _("\ + add_prefix_cmd ("info", class_info, info_command, _("\ Generic command for showing things about the program being debugged."), - &infolist, "info ", 0, &cmdlist); + &infolist, "info ", 0, &cmdlist); add_com_alias ("i", "info", class_info, 1); add_com_alias ("inf", "info", class_info, 1); diff --git a/gdb/gdb-gdb.gdb.in b/gdb/gdb-gdb.gdb.in index b647445e8c9..53dca0e08fe 100644 --- a/gdb/gdb-gdb.gdb.in +++ b/gdb/gdb-gdb.gdb.in @@ -7,6 +7,15 @@ if !$gdb_init_done b internal_error + # This provides an easy way to break into the top-level GDB by + # typing "info". + b info_command + commands + silent + # This avoids the voluminous output of "info". + return + end + dir @srcdir@/../libiberty dir @srcdir@/../bfd dir @srcdir@ -- 2.30.2