diff options
author | Gary Benson <gbenson@redhat.com> | 2018-06-08 18:06:46 +0100 |
---|---|---|
committer | Gary Benson <gbenson@redhat.com> | 2018-06-08 18:06:46 +0100 |
commit | 5045b3d78903d1f6faa4cb511fa801e50dfacf48 (patch) | |
tree | c9d0de294605fc4784caf427f95d799f62088ce3 /gdb/doc | |
parent | 2f4f025ff15b900706c8597060003a506107cf23 (diff) | |
download | gdb-5045b3d78903d1f6faa4cb511fa801e50dfacf48.zip gdb-5045b3d78903d1f6faa4cb511fa801e50dfacf48.tar.gz gdb-5045b3d78903d1f6faa4cb511fa801e50dfacf48.tar.bz2 |
linux: Add maintenance commands to test libthread_db
This commit adds two new commands which may be used to test thread
debugging libraries used by GDB:
* "maint check libthread-db" tests the thread debugging library GDB
is using for the current inferior.
* "maint set/show check-libthread-db" selects whether libthread_db
tests should be run automatically as libthread_db is auto-loaded.
The default is to not run tests automatically.
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 functionality 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.
gdb/ChangeLog:
* linux-thread-db.c (valprint.h): New include.
(struct check_thread_db_info): New structure.
(check_thread_db_on_load, tdb_testinfo): New static globals.
(check_thread_db, check_thread_db_callback): New functions.
(try_thread_db_load_1): Run integrity checks if requested.
(maintenance_check_libthread_db): New function.
(_initialize_thread_db): Register "maint check libthread-db"
and "maint set/show check-libthread-db".
* NEWS: Mention the above new commands.
gdb/doc/ChangeLog:
* gdb.texinfo (Maintenance Commands): Document "maint check
libthread-db" and "maint set/show check-libthread-db".
gdb/testsuite/ChangeLog:
* gdb.threads/check-libthread-db.exp: New file.
* gdb.threads/check-libthread-db.c: Likewise.
Diffstat (limited to 'gdb/doc')
-rw-r--r-- | gdb/doc/ChangeLog | 5 | ||||
-rw-r--r-- | gdb/doc/gdb.texinfo | 20 |
2 files changed, 25 insertions, 0 deletions
diff --git a/gdb/doc/ChangeLog b/gdb/doc/ChangeLog index 6191e84..d36affe 100644 --- a/gdb/doc/ChangeLog +++ b/gdb/doc/ChangeLog @@ -1,3 +1,8 @@ +2018-06-08 Gary Benson <gbenson@redhat.com> + + * gdb.texinfo (Maintenance Commands): Document "maint check + libthread-db" and "maint set/show check-libthread-db". + 2018-06-05 Tom Tromey <tom@tromey.com> PR cli/12326: diff --git a/gdb/doc/gdb.texinfo b/gdb/doc/gdb.texinfo index 4968b37..2c0ac33 100644 --- a/gdb/doc/gdb.texinfo +++ b/gdb/doc/gdb.texinfo @@ -35547,6 +35547,15 @@ 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 @code{libthread_db} functionality used by +@value{GDBN} on GNU/Linux systems, and by extension also exercises the +@code{proc_service} functions provided by @value{GDBN} that +@code{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. @@ -35854,6 +35863,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} |