[RFA/doco/commit] Make the "info dll" command available on all platform.

Message ID 1430848969-10842-1-git-send-email-brobecker@adacore.com
State New, archived
Headers

Commit Message

Joel Brobecker May 5, 2015, 6:02 p.m. UTC
  Hello,

A follow-up on a discussion we had a while back:
https://www.sourceware.org/ml/gdb-patches/2015-01/msg00050.html

The "info dll", an alias of the "info sharedlibrary" command, is
currently only defined in windows native versions. This patch makes
it universally available by moving the alias declaration to solib.c,
and adjusts the documentation accordingly.

Making it universally available has two benefits:
  - Windows users moving to a Unix platforms are still able to use
    the same command for getting the list of shared libraries;
  - Unix to Windows cross debuggers now provide that command also.

gdb/ChangeLog:

        * solib.c (_initialize_solib): Add "info dll" alias creation.
        * windows-nat.c (set_windows_aliases): Delete.
        (_initialize_windows_nat): Remove deprecated_init_ui_hook
        assignment.
        * NEWS: Add news entry about "info dll" now being available
        on all platforms.

gdb/doc/ChangeLog:

        * gdb.texinfo (Files): Add "info dll" documentation.
        (Cygwin Native): Remove "info dll" documentation.

Tested on x86_64-linux, no regression (obviously).

I'll push the patch once documentation is reviewed.
Note that I looked at getting rid of deprecated_init_ui_hook,
but I found that insight might still be needing it :-( (to be
confirmed, though, as my sources are fairly old).

Thanks,
  

Comments

Eli Zaretskii May 5, 2015, 6:35 p.m. UTC | #1
> From: Joel Brobecker <brobecker@adacore.com>
> Date: Tue,  5 May 2015 11:02:49 -0700
> 
> A follow-up on a discussion we had a while back:
> https://www.sourceware.org/ml/gdb-patches/2015-01/msg00050.html
> 
> The "info dll", an alias of the "info sharedlibrary" command, is
> currently only defined in windows native versions. This patch makes
> it universally available by moving the alias declaration to solib.c,
> and adjusts the documentation accordingly.
> 
> Making it universally available has two benefits:
>   - Windows users moving to a Unix platforms are still able to use
>     the same command for getting the list of shared libraries;
>   - Unix to Windows cross debuggers now provide that command also.
> 
> gdb/ChangeLog:
> 
>         * solib.c (_initialize_solib): Add "info dll" alias creation.
>         * windows-nat.c (set_windows_aliases): Delete.
>         (_initialize_windows_nat): Remove deprecated_init_ui_hook
>         assignment.
>         * NEWS: Add news entry about "info dll" now being available
>         on all platforms.
> 
> gdb/doc/ChangeLog:
> 
>         * gdb.texinfo (Files): Add "info dll" documentation.
>         (Cygwin Native): Remove "info dll" documentation.

The documentation parts are OK.

Thanks.
  
Pedro Alves May 6, 2015, 11:53 a.m. UTC | #2
On 05/05/2015 07:02 PM, Joel Brobecker wrote:

> Note that I looked at getting rid of deprecated_init_ui_hook,
> but I found that insight might still be needing it :-( (to be
> confirmed, though, as my sources are fairly old).
> 

From current insight git:

$ grep -rn deprecated_init_ui_hook
binutils-gdb/gdb/windows-nat.c:2604:  deprecated_init_ui_hook = set_windows_aliases;
binutils-gdb/gdb/ChangeLog-2004:9403:   (deprecated_memory_changed_hook, deprecated_init_ui_hook)
binutils-gdb/gdb/ChangeLog-2013:3969:   * top.c (quit_confirm): Remove use of deprecated_init_ui_hook.
binutils-gdb/gdb/ChangeLog-2013:4011:   to deprecated_init_ui_hook.
binutils-gdb/gdb/defs.h:637:   deprecated_init_ui_hook with the per-interpreter implementation.  */
binutils-gdb/gdb/defs.h:638:/* FIXME: deprecated_init_ui_hook should be moved here.  */
binutils-gdb/gdb/defs.h:647:extern void (*deprecated_init_ui_hook) (char *argv0);
binutils-gdb/gdb/interps.c:365:  deprecated_init_ui_hook = 0;
binutils-gdb/gdb/top.c:181:void (*deprecated_init_ui_hook) (char *argv0);
binutils-gdb/gdb/top.c:1975:     deprecated_init_ui_hook.  */
binutils-gdb/gdb/top.c:1976:  if (deprecated_init_ui_hook)
binutils-gdb/gdb/top.c:1977:    deprecated_init_ui_hook (argv0);
binutils-gdb/gdb/ChangeLog-2005:1299:   deprecated_init_ui_hook to allow late setting of "info dll" alias.
binutils-gdb/gdb/main.c:863:     control of the console via the deprecated_init_ui_hook ().  */
gdbtk/ChangeLog:227:    (_initialize_gdbtk): No longer set deprecated_init_ui_hook.

gdbtk/ChangeLog:
...
2013-09-20  Andrew Burgess  <aburgess@broadcom.com>

        * generic/gdbtk.c: Add include of "main.h".
        (gdbtk_init_1): Remove.
        (argv0): Remove.
        (_initialize_gdbtk): No longer set deprecated_init_ui_hook.
        (gdbtk_init): Use get_gdb_program_name function from main.h.
...

https://www.sourceware.org/ml/insight/2013-q3/msg00042.html

Thanks,
Pedro Alves
  
Joel Brobecker May 6, 2015, 5:50 p.m. UTC | #3
> > gdb/ChangeLog:
> > 
> >         * solib.c (_initialize_solib): Add "info dll" alias creation.
> >         * windows-nat.c (set_windows_aliases): Delete.
> >         (_initialize_windows_nat): Remove deprecated_init_ui_hook
> >         assignment.
> >         * NEWS: Add news entry about "info dll" now being available
> >         on all platforms.
> > 
> > gdb/doc/ChangeLog:
> > 
> >         * gdb.texinfo (Files): Add "info dll" documentation.
> >         (Cygwin Native): Remove "info dll" documentation.
> 
> The documentation parts are OK.

Thank you, Eli. I've now pushed that patch to master.
  

Patch

diff --git a/gdb/NEWS b/gdb/NEWS
index 651401d..0c7084a 100644
--- a/gdb/NEWS
+++ b/gdb/NEWS
@@ -23,6 +23,9 @@ 
   present in the debug info.  This typically includes the compiler version
   and may include things like its command line arguments.
 
+* The "info dll", an alias of the "info sharedlibrary" command,
+  is now available on all platforms.
+
 * Directory names supplied to the "set sysroot" commands may be
   prefixed with "target:" to tell GDB to access shared libraries from
   the target system, be it local or remote.  This replaces the prefix
diff --git a/gdb/doc/gdb.texinfo b/gdb/doc/gdb.texinfo
index 9e2787d..19d8bb3 100644
--- a/gdb/doc/gdb.texinfo
+++ b/gdb/doc/gdb.texinfo
@@ -17854,6 +17854,10 @@  Print the names of the shared libraries which are currently loaded
 that match @var{regex}.  If @var{regex} is omitted then print
 all shared libraries that are loaded.
 
+@kindex info dll
+@item info dll @var{regex}
+This is an alias of @code{info sharedlibrary}.
+
 @kindex sharedlibrary
 @kindex share
 @item sharedlibrary @var{regex}
@@ -20701,10 +20705,6 @@  This command displays thread specific information stored in the
 Thread Information Block (readable on the X86 CPU family using @code{$fs}
 selector for 32-bit programs and @code{$gs} for 64-bit programs).
 
-@kindex info dll
-@item info dll
-This is a Cygwin-specific alias of @code{info shared}.
-
 @kindex set cygwin-exceptions
 @cindex debugging the Cygwin DLL
 @cindex Cygwin DLL, debugging
diff --git a/gdb/solib.c b/gdb/solib.c
index 358a0a2..0010c2f 100644
--- a/gdb/solib.c
+++ b/gdb/solib.c
@@ -1675,6 +1675,7 @@  _initialize_solib (void)
 	   _("Load shared object library symbols for files matching REGEXP."));
   add_info ("sharedlibrary", info_sharedlibrary_command,
 	    _("Status of loaded shared object libraries."));
+  add_info_alias ("dll", "sharedlibrary", 1);
   add_com ("nosharedlibrary", class_files, no_shared_libraries,
 	   _("Unload all shared object library symbols."));
 
diff --git a/gdb/windows-nat.c b/gdb/windows-nat.c
index be5d7e8..701d2c5 100644
--- a/gdb/windows-nat.c
+++ b/gdb/windows-nat.c
@@ -2502,12 +2502,6 @@  windows_target (void)
   return t;
 }
 
-static void
-set_windows_aliases (char *argv0)
-{
-  add_info_alias ("dll", "sharedlibrary", 1);
-}
-
 /* -Wmissing-prototypes */
 extern initialize_file_ftype _initialize_windows_nat;
 
@@ -2601,7 +2595,6 @@  Show whether to display kernel exceptions in child process."), NULL,
   add_cmd ("selector", class_info, display_selectors,
 	   _("Display selectors infos."),
 	   &info_w32_cmdlist);
-  deprecated_init_ui_hook = set_windows_aliases;
 }
 
 /* Hardware watchpoint support, adapted from go32-nat.c code.  */