+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)
+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
@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
+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.
# ^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 {}
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)]} {
struct thread_info *tp;
int num = 0;
struct cleanup *cleanup_chain;
+ int current_thread = -1;
prune_threads ();
target_find_new_threads ();
{
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;
}