* thread.c (thread_id_make_value): Make a value representing the

current thread.
	(_initialize_thread): Create $_thread.

	* gdb.texinfo (Debugging Programs with Multiple Threads): Describe
	$_thread.

	* gdb.threads/thread-specific.exp: Add tests of $_thread.
This commit is contained in:
Stan Shebs 2010-06-18 17:44:40 +00:00
parent 6508b958ff
commit 6aed2dbcba
6 changed files with 51 additions and 1 deletions

View file

@ -1262,6 +1262,18 @@ update_thread_list (void)
target_find_new_threads ();
}
/* Return a new value for the selected thread's id. Return a value of 0 if
no thread is selected, or no threads exist. */
static struct value *
thread_id_make_value (struct gdbarch *gdbarch, struct internalvar *var)
{
struct thread_info *tp = find_thread_ptid (inferior_ptid);
return value_from_longest (builtin_type (gdbarch)->builtin_int,
(tp ? tp->num : 0));
}
/* Commands with a prefix of `thread'. */
struct cmd_list_element *thread_cmd_list = NULL;
@ -1295,4 +1307,6 @@ Show printing of thread events (such as thread start and exit)."), NULL,
NULL,
show_print_thread_events,
&setprintlist, &showprintlist);
create_internalvar_type_lazy ("_thread", thread_id_make_value);
}