[v2] linux: Add maintenance commands to test libthread_db

Message ID 20180605154612.GA30767@blade.nx
State New, archived
Headers

Commit Message

Gary Benson June 5, 2018, 3:46 p.m. UTC
  Eli Zaretskii wrote:
> > From: Gary Benson <gbenson@redhat.com>
> > 
> > The test itself is a basic integrity check exercising all libthread_db
> > functions used by GDB on GNU/Linux systems.  By extension this also
> > exercises the proc_service functions provided by GDB that libthread_db
> > uses.  This is useful for NPTL developers and libthread_db developers.
> > It could also prove useful investigating bugs reported against GDB
> > where the thread debugging library or GDB's proc_service layer is
> > suspect.
> 
> I think some of this text should be in the manual, otherwise the
> description of the command is not very useful.

How about this, as the full diff of the manual?  I added the text to
the first section, and updated the second to point at the first and
also to document what happens when automated tests fail.

--
  

Comments

Eli Zaretskii June 5, 2018, 4:11 p.m. UTC | #1
> Date: Tue, 5 Jun 2018 16:46:13 +0100
> From: Gary Benson <gbenson@redhat.com>
> Cc: gdb-patches@sourceware.org, simon.marchi@ericsson.com,
> 	palves@redhat.com
> 
> > I think some of this text should be in the manual, otherwise the
> > description of the command is not very useful.
> 
> How about this, as the full diff of the manual?  I added the text to
> the first section, and updated the second to point at the first and
> also to document what happens when automated tests fail.

Thanks, this is very good.  I have a couple of minor comments:

> +@kindex maint check libthread-db
> +@item maint check libthread-db
> +Run integrity checks on the current inferior's thread debugging
> +library.  This exercises all libthread_db functionality used by GDB on

"libthread_db" should be in @code or in @file.  And please use
@value{GDBN} instead of a literal "GDB".

> +GNU/Linux systems, and by extension also exercises the proc_service

proc_service should be in @code.
  

Patch

diff --git a/gdb/doc/gdb.texinfo b/gdb/doc/gdb.texinfo
index 28f083f..faca132 100644
--- a/gdb/doc/gdb.texinfo
+++ b/gdb/doc/gdb.texinfo
@@ -35533,6 +35533,14 @@  modify XML target descriptions.
 Check that the target descriptions dynamically created by @value{GDBN}
 equal the descriptions created from XML files found in @var{dir}.
 
+@kindex maint check libthread-db
+@item maint check libthread-db
+Run integrity checks on the current inferior's thread debugging
+library.  This exercises all libthread_db functionality used by GDB on
+GNU/Linux systems, and by extension also exercises the proc_service
+functions provided by GDB that libthread_db uses.  Note that parts of
+the test may be skipped on some platforms when debugging core files.
+
 @kindex maint print dummy-frames
 @item maint print dummy-frames
 Prints the contents of @value{GDBN}'s internal dummy-frame stack.
@@ -35840,6 +35848,17 @@  number of blocks in the blockvector
 @end enumerate
 @end table
 
+@kindex maint set check-libthread-db
+@kindex maint show check-libthread-db
+@item maint set check-libthread-db [on|off]
+@itemx maint show check-libthread-db
+Control whether @value{GDBN} should run integrity checks on inferior
+specific thread debugging libraries as they are loaded.  The default
+is not to perform such checks.  If any check fails @value{GDBN} will
+unload the library and continue searching for a suitable candidate as
+described in @ref{set libthread-db-search-path}.  For more information
+about the tests, see @ref{maint check libthread-db}.
+
 @kindex maint space
 @cindex memory used by commands
 @item maint space @var{value}