diff options
-rw-r--r-- | gdb/ChangeLog | 9 | ||||
-rw-r--r-- | gdb/NEWS | 3 | ||||
-rw-r--r-- | gdb/doc/ChangeLog | 4 | ||||
-rw-r--r-- | gdb/doc/gdb.texinfo | 19 | ||||
-rw-r--r-- | gdb/gdbthread.h | 4 | ||||
-rw-r--r-- | gdb/testsuite/ChangeLog | 4 | ||||
-rw-r--r-- | gdb/testsuite/gdb.multi/tids.exp | 8 | ||||
-rw-r--r-- | gdb/thread.c | 14 |
8 files changed, 55 insertions, 10 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog index d253808..603af22 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,5 +1,14 @@ 2016-01-13 Pedro Alves <palves@redhat.com> + * NEWS: Mention "info threads -gid". + * gdbthread.h (struct thread_info) <global_num>: Mention "info + threads -gid". + * thread.c (info_threads_command): Handle "-gid". + (_initialize_thread): Adjust "info threads" help string to mention + -gid. + +2016-01-13 Pedro Alves <palves@redhat.com> + * NEWS: Mention InferiorThread.global_num. * python/py-infthread.c (thpy_get_global_num): New function. (thread_object_getset): Register "global_num". @@ -34,6 +34,9 @@ [Switching to thread 2.1 (Thread 0x7ffff7fc2740 (LWP 8157))] (running) (gdb) +* You can use "info threads -gid" to display the global thread ID of + all threads. + * The new convenience variable $_inferior holds the number of the current inferior. diff --git a/gdb/doc/ChangeLog b/gdb/doc/ChangeLog index 65f8ed9..d723276 100644 --- a/gdb/doc/ChangeLog +++ b/gdb/doc/ChangeLog @@ -1,5 +1,9 @@ 2016-01-13 Pedro Alves <palves@redhat.com> + * gdb.texinfo (Threads): Document "info threads -gid". + +2016-01-13 Pedro Alves <palves@redhat.com> + * python.texi (Breakpoints In Python) <Breakpoint.thread>: Add anchor. (Threads In Python): Document new InferiorThread.global_num diff --git a/gdb/doc/gdb.texinfo b/gdb/doc/gdb.texinfo index 786556e..654efa4 100644 --- a/gdb/doc/gdb.texinfo +++ b/gdb/doc/gdb.texinfo @@ -2959,6 +2959,10 @@ threads that you want to display using the thread ID list syntax the per-inferior thread number assigned by @value{GDBN} @item +the global thread number assigned by @value{GDBN}, if the @samp{-gid} +option was specified + +@item the target system's thread identifier (@var{systag}) @item @@ -2989,15 +2993,18 @@ For example, If you're debugging multiple inferiors, @value{GDBN} displays thread IDs using the qualified @var{inferior-num}.@var{thread-num} format. -Otherwise, only @var{thread-num} is shown: +Otherwise, only @var{thread-num} is shown. + +If you specify the @samp{-gid} option, @value{GDBN} displays a column +indicating each thread's global thread ID: @smallexample (@value{GDBP}) info threads - Id Target Id Frame - 1.1 process 35 thread 13 main (argc=1, argv=0x7ffffff8) - 1.2 process 35 thread 23 0x34e5 in sigpause () - 1.3 process 35 thread 27 0x34e5 in sigpause () -* 2.1 process 65 thread 1 main (argc=1, argv=0x7ffffff8) + Id GId Target Id Frame + 1.1 1 process 35 thread 13 main (argc=1, argv=0x7ffffff8) + 1.2 3 process 35 thread 23 0x34e5 in sigpause () + 1.3 4 process 35 thread 27 0x34e5 in sigpause () +* 2.1 2 process 65 thread 1 main (argc=1, argv=0x7ffffff8) @end smallexample On Solaris, you can display more information about user threads with a diff --git a/gdb/gdbthread.h b/gdb/gdbthread.h index 5ff38bf..bfc9124 100644 --- a/gdb/gdbthread.h +++ b/gdb/gdbthread.h @@ -216,8 +216,8 @@ struct thread_info Above, both inferiors 1 and 2 have threads numbered 1-3, but each thread has its own unique global ID. */ - /* The thread's global GDB thread number. This is exposed to MI and - Python/Scheme. */ + /* The thread's global GDB thread number. This is exposed to MI, + Python/Scheme and visible with "info threads -gid". */ int global_num; /* The per-inferior thread number. This is unique in the inferior diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog index 92989a9..c863518 100644 --- a/gdb/testsuite/ChangeLog +++ b/gdb/testsuite/ChangeLog @@ -1,5 +1,9 @@ 2016-01-13 Pedro Alves <palves@redhat.com> + * gdb.multi/tids.exp: Test "info threads -gid". + +2016-01-13 Pedro Alves <palves@redhat.com> + * gdb.multi/tids.exp: Test InferiorThread.global_num and Breakpoint.thread. * gdb.python/py-infthread.exp: Test InferiorThread.global_num. diff --git a/gdb/testsuite/gdb.multi/tids.exp b/gdb/testsuite/gdb.multi/tids.exp index 6895f3c..b0c768f 100644 --- a/gdb/testsuite/gdb.multi/tids.exp +++ b/gdb/testsuite/gdb.multi/tids.exp @@ -150,6 +150,14 @@ with_test_prefix "two inferiors" { info_threads "" "1.1 1.2 2.1 2.2" \ "info threads again" + # Same, but show the global ID. + gdb_test "info threads -gid" \ + [multi_line \ + " 1\.1 +1 +.*" \ + "\\* 1\.2 +4 +.* thread_function1 .* at .*$srcfile:.*" \ + " 2\.1 +2 +.*" \ + " 2\.2 +3 +.* thread_function1 .* at .*$srcfile:.*"] + # Confirm the convenience variable show the expected number. gdb_test "p \$_thread == 2" " = 1" diff --git a/gdb/thread.c b/gdb/thread.c index dd8f7da..8ec6a38 100644 --- a/gdb/thread.c +++ b/gdb/thread.c @@ -1403,7 +1403,16 @@ print_thread_info (struct ui_out *uiout, char *requested_threads, int pid) static void info_threads_command (char *arg, int from_tty) { - print_thread_info_1 (current_uiout, arg, 0, -1, 0); + int show_global_ids = 0; + + if (arg != NULL + && check_for_argument (&arg, "-gid", sizeof ("-gid") - 1)) + { + arg = skip_spaces (arg); + show_global_ids = 1; + } + + print_thread_info_1 (current_uiout, arg, 0, -1, show_global_ids); } /* See gdbthread.h. */ @@ -2107,7 +2116,8 @@ _initialize_thread (void) add_info ("threads", info_threads_command, _("Display currently known threads.\n\ -Usage: info threads [ID]...\n\ +Usage: info threads [-gid] [ID]...\n\ +-gid: Show global thread IDs.\n\ If ID is given, it is a space-separated list of IDs of threads to display.\n\ Otherwise, all threads are displayed.")); |