Restore info_command and breakpoint

Message ID 20200505170249.31630-1-tromey@adacore.com
State New
Headers show
Series
  • Restore info_command and breakpoint
Related show

Commit Message

Tom Tromey May 5, 2020, 5:02 p.m.
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-05  Tom Tromey  <tromey@adacore.com>

	* 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 |  6 ++++++
 3 files changed, 25 insertions(+), 2 deletions(-)

-- 
2.21.1

Comments

Gary Benson via Gdb-patches May 5, 2020, 6:26 p.m. | #1
On Tue, May 5, 2020 at 12:03 PM Tom Tromey <tromey@adacore.com> wrote:
>

> 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-05  Tom Tromey  <tromey@adacore.com>

>

>         * 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 |  6 ++++++

>  3 files changed, 25 insertions(+), 2 deletions(-)

>

> 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..05a38b2670b 100644

> --- a/gdb/gdb-gdb.gdb.in

> +++ b/gdb/gdb-gdb.gdb.in

> @@ -7,6 +7,12 @@ if !$gdb_init_done

>

>    b internal_error

>

> +  b info_command


It would probably be good to add a comment here?
# This provides an easy way to break into the top-level GDB by typing "info"

> +  commands

> +    silent

> +    return

> +  end

> +

>    dir @srcdir@/../libiberty

>    dir @srcdir@/../bfd

>    dir @srcdir@

> --

> 2.21.1

>
Gary Benson via Gdb-patches May 5, 2020, 6:51 p.m. | #2
On Tue, 2020-05-05 at 13:26 -0500, Christian Biesinger via Gdb-patches wrote:

> > diff --git a/gdb/gdb-gdb.gdb.in b/gdb/gdb-gdb.gdb.in

> > index b647445e8c9..05a38b2670b 100644

> > --- a/gdb/gdb-gdb.gdb.in

> > +++ b/gdb/gdb-gdb.gdb.in

> > @@ -7,6 +7,12 @@ if !$gdb_init_done

> > 

> >    b internal_error

> > 

> > +  b info_command

> 

> It would probably be good to add a comment here?

> # This provides an easy way to break into the top-level GDB by typing "info"

Yes, good idea.
Even    ... by typing "info" or "i".
Also, a comment to explain the return, something like:
# return to avoid the long output of "info" command list.
as the objective of this was not crystal clear to everybody.
 
> 

> > +  commands

> > +    silent

> > +    return

> > +  end

> > +

> >    dir @srcdir@/../libiberty

> >    dir @srcdir@/../bfd

> >    dir @srcdir@

> > --

> > 2.21.1

> >
Tom Tromey May 5, 2020, 7 p.m. | #3
>>>>> "Christian" == Christian Biesinger <cbiesinger@google.com> writes:


>> +  b info_command


Christian> It would probably be good to add a comment here?
Christian> # This provides an easy way to break into the top-level GDB by typing "info"

Good idea, I added this.

Tom
Tom Tromey May 5, 2020, 7 p.m. | #4
>>>>> "Philippe" == Philippe Waroquiers <philippe.waroquiers@skynet.be> writes:


Philippe> Also, a comment to explain the return, something like:
Philippe> # return to avoid the long output of "info" command list.
Philippe> as the objective of this was not crystal clear to everybody.
 
I resemble that remark.
Anyway I added a comment along these lines.

Tom
Tom Tromey May 11, 2020, 9:28 p.m. | #5
>>>>> "Tom" == Tom Tromey <tromey@adacore.com> writes:


Tom> As discussed on gdb-patches, this restores info_command and the
Tom> breakpoint on info_command in gdb-gdb.gdb.  This reverts a tiny part
Tom> of 0743fc83c03 ("Replace most calls to help_list and cmd_show_list"),
Tom> as well as 652fc23a30a ("Remove gdb-gdb.gdb breakpoint on disappeared
Tom> function info_command.").

I'm checking this in.

Tom

Patch

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..05a38b2670b 100644
--- a/gdb/gdb-gdb.gdb.in
+++ b/gdb/gdb-gdb.gdb.in
@@ -7,6 +7,12 @@  if !$gdb_init_done
 
   b internal_error
 
+  b info_command
+  commands
+    silent
+    return
+  end
+
   dir @srcdir@/../libiberty
   dir @srcdir@/../bfd
   dir @srcdir@