PR 8145.
authorVladimir Prus <vladimir@codesourcery.com>
Fri, 30 Jan 2009 18:43:05 +0000 (18:43 +0000)
committerVladimir Prus <vladimir@codesourcery.com>
Fri, 30 Jan 2009 18:43:05 +0000 (18:43 +0000)
* thread.c (do_captured_list_thread_ids): Report the current
thread id.

gdb/ChangeLog
gdb/doc/ChangeLog
gdb/doc/gdb.texinfo
gdb/testsuite/ChangeLog
gdb/testsuite/lib/mi-support.exp
gdb/thread.c

index cf6678edabb3c5dcd7f7e89e7145eddbde4d7f1f..a1f37c6111928dbde666137a05368017a9d2ce41 100644 (file)
@@ -1,3 +1,9 @@
+2009-01-30  Vladimir Prus  <vladimir@codesourcery.com>
+
+       PR 8145.
+       * thread.c (do_captured_list_thread_ids): Report the current
+       thread id.
+
 2009-01-30  Vladimir Prus  <vladimir@codesourcery.com>
 
        * breakpoint.c (create_breakpoint, create_breakpoints)
index 8b3d084f1caa8c2b1a7c2dbabbfbd05020d650f5..69c9d20df669d33a7c1c6497992afc817be5f5ef 100644 (file)
@@ -1,3 +1,9 @@
+2009-01-30  Vladimir Prus  <vladimir@codesourcery.com>
+
+       * gdb.texinfo (GDB/MI Thread Commands): Document the
+       'current-thread-id' field.  Remove the example with zero threads,
+       since current GDB won't ever report that if there's inferior.
+
 2009-01-30  Vladimir Prus  <vladimir@codesourcery.com>
 
        * gdb.texinfo (GDB/MI Breakpoint Commands): Document the -d
index 9f545d5ff3aaeb6e3f121731167bf3ad9f64295a..166b84d579866bcf8d36c1dec2d13a7408b6d22a 100644 (file)
@@ -20513,23 +20513,11 @@ Part of @samp{info threads} supplies the same information.
 
 @subsubheading Example
 
-No threads present, besides the main process:
-
-@smallexample
-(gdb)
--thread-list-ids
-^done,thread-ids=@{@},number-of-threads="0"
-(gdb)
-@end smallexample
-
-
-Several threads:
-
 @smallexample
 (gdb)
 -thread-list-ids
 ^done,thread-ids=@{thread-id="3",thread-id="2",thread-id="1"@},
-number-of-threads="3"
+current-thread-id="1",number-of-threads="3"
 (gdb)
 @end smallexample
 
index 9e636b927ddde9a9dddc51ff93e6edb80b4741a2..3b3735c570a31dd3b4db99fd34d9597210767aee 100644 (file)
@@ -1,3 +1,9 @@
+2009-01-30  Vladimir Prus  <vladimir@codesourcery.com>
+
+       * lib/mi-support.exp (et_mi_thread_list)
+       (check_mi_and_console_threads): Adjust for current thread in
+       -thread-list-ids output.
+
 2009-01-30  Vladimir Prus  <vladimir@codesourcery.com>
 
        * gdb.mi/mi-break.exp (test_disabled_creation): New.
index 7822e665a2bf1f750192bddba60c3ac0252974fa..a85e373f4e99dd5f8f39d8373eabc7d34bd6fe8c 100644 (file)
@@ -1605,7 +1605,7 @@ proc get_mi_thread_list {name} {
   # ^done,thread-ids=[thread-id="1",thread-id="2",...],number-of-threads="N"
   # (gdb)
   mi_gdb_test "-thread-list-ids" \
-    {.*\^done,thread-ids={(thread-id="[0-9]+"(,)?)+},number-of-threads="[0-9]+"} \
+    {.*\^done,thread-ids={(thread-id="[0-9]+"(,)?)+},current-thread-id="[0-9]+",number-of-threads="[0-9]+"} \
     "-thread_list_ids ($name)"
 
   set output {}
@@ -1639,7 +1639,7 @@ proc check_mi_and_console_threads {name} {
   global expect_out
 
   mi_gdb_test "-thread-list-ids" \
-    {.*\^done,thread-ids={(thread-id="[0-9]+"(,)*)+},number-of-threads="[0-9]+"} \
+    {.*\^done,thread-ids={(thread-id="[0-9]+"(,)*)+},current-thread-id="[0-9]+",number-of-threads="[0-9]+"} \
     "-thread-list-ids ($name)"
   set mi_output {}
   if {[info exists expect_out(buffer)]} {
index 8a98b8ec4b6af57b6f57cd55c4ba94ccf6a7babc..1d6d9c4d8c65f5ca9a6276d882be8aad25f7183d 100644 (file)
@@ -410,6 +410,7 @@ do_captured_list_thread_ids (struct ui_out *uiout, void *arg)
   struct thread_info *tp;
   int num = 0;
   struct cleanup *cleanup_chain;
+  int current_thread = -1;
 
   prune_threads ();
   target_find_new_threads ();
@@ -420,11 +421,18 @@ do_captured_list_thread_ids (struct ui_out *uiout, void *arg)
     {
       if (tp->state_ == THREAD_EXITED)
        continue;
+
+      if (ptid_equal (tp->ptid, inferior_ptid))
+       current_thread = tp->num;
+
       num++;
       ui_out_field_int (uiout, "thread-id", tp->num);
     }
 
   do_cleanups (cleanup_chain);
+
+  if (current_thread != -1)
+    ui_out_field_int (uiout, "current-thread-id", current_thread);
   ui_out_field_int (uiout, "number-of-threads", num);
   return GDB_RC_OK;
 }