diff options
author | Joel Brobecker <brobecker@gnat.com> | 2009-04-23 18:55:20 +0000 |
---|---|---|
committer | Joel Brobecker <brobecker@gnat.com> | 2009-04-23 18:55:20 +0000 |
commit | 5e7b5f74c234fb11db064df93e309463a9058740 (patch) | |
tree | f9c34ba27384dee3641b36105e26baa7fe51e9f8 | |
parent | 465f42bbe4d77444c30a9ffea8faebb794c2596f (diff) | |
download | gdb-5e7b5f74c234fb11db064df93e309463a9058740.zip gdb-5e7b5f74c234fb11db064df93e309463a9058740.tar.gz gdb-5e7b5f74c234fb11db064df93e309463a9058740.tar.bz2 |
* ada-tasks (task_command_1): Call target_find_new_threads.
-rw-r--r-- | gdb/ChangeLog | 4 | ||||
-rw-r--r-- | gdb/ada-tasks.c | 9 |
2 files changed, 13 insertions, 0 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog index a6917cb..ec17070 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,5 +1,9 @@ 2009-04-23 Joel Brobecker <brobecker@adacore.com> + * ada-tasks (task_command_1): Call target_find_new_threads. + +2009-04-23 Joel Brobecker <brobecker@adacore.com> + * stack.c (do_gdb_disassembly): Print the exception message if an error was thrown while trying to perform the disassembly. diff --git a/gdb/ada-tasks.c b/gdb/ada-tasks.c index f7bbf2d..14f2503 100644 --- a/gdb/ada-tasks.c +++ b/gdb/ada-tasks.c @@ -865,6 +865,15 @@ task_command_1 (char *taskno_str, int from_tty) if (!ada_task_is_alive (task_info)) error (_("Cannot switch to task %d: Task is no longer running"), taskno); + /* On some platforms, the thread list is not updated until the user + performs a thread-related operation (by using the "info threads" + command, for instance). So this thread list may not be up to date + when the user attempts this task switch. Since we cannot switch + to the thread associated to our task if GDB does not know about + that thread, we need to make sure that any new threads gets added + to the thread list. */ + target_find_new_threads (); + switch_to_thread (task_info->ptid); ada_find_printable_frame (get_selected_frame (NULL)); printf_filtered (_("[Switching to task %d]\n"), taskno); |