/* Ada Ravenscar thread support.
- Copyright 2004, 2009, 2010 Free Software Foundation, Inc.
+ Copyright 2004, 2009-2012 Free Software Foundation, Inc.
This file is part of GDB.
static const char running_thread_name[] = "__gnat_running_thread_table";
static const char known_tasks_name[] = "system__tasking__debug__known_tasks";
+static const char first_task_name[] = "system__tasking__debug__first_task";
-static const char ravenscar_runtime_initializer[] = "system__bb__threads__initialize";
+static const char ravenscar_runtime_initializer[] =
+ "system__bb__threads__initialize";
static struct observer *update_target_observer = NULL;
lookup_minimal_symbol (ravenscar_runtime_initializer, NULL, NULL);
struct minimal_symbol *msym_known_tasks =
lookup_minimal_symbol (known_tasks_name, NULL, NULL);
+ struct minimal_symbol *msym_first_task =
+ lookup_minimal_symbol (first_task_name, NULL, NULL);
struct minimal_symbol *msym_running_thread = get_running_thread_msymbol ();
return (msym_ravenscar_runtime_initializer
- && msym_known_tasks
+ && (msym_known_tasks || msym_first_task)
&& msym_running_thread);
}
static void
ravenscar_find_new_threads (struct target_ops *ops)
{
- ada_build_task_list (0);
+ ada_build_task_list ();
/* Do not clear the thread list before adding the Ada task, to keep
the thread that the process stratum has included into it
architectures, just like in remote-wtx-hw.c. However, for now the
only Ravenscar run-time for bare board that is implemented in
GNAT is for only one architecture: erc32-elf. So no need to care about
- that for now...*/
+ that for now... */
current_arch_ops = ops;
}
add_prefix_cmd ("ravenscar", no_class, show_ravenscar_command,
_("Prefix command for showing Ravenscar-specific settings"),
- &show_ravenscar_list, "set ravenscar ", 0, &showlist);
+ &show_ravenscar_list, "show ravenscar ", 0, &showlist);
add_setshow_boolean_cmd ("task-switching", class_obscure,
&ravenscar_task_support, _("\