• Gary Benson's avatar
    linux: Add maintenance commands to test libthread_db · ab3d1b33
    Gary Benson authored
    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.
    ab3d1b33
check-libthread-db.c 1.49 KB