diff options
-rw-r--r-- | gdb/ChangeLog | 13 | ||||
-rw-r--r-- | gdb/ada-lang.h | 2 | ||||
-rw-r--r-- | gdb/ada-tasks.c | 41 | ||||
-rw-r--r-- | gdb/ravenscar-thread.c | 2 |
4 files changed, 36 insertions, 22 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog index aea3e17..fa48c01 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,5 +1,18 @@ 2011-09-16 Joel Brobecker <brobecker@adacore.com> + * ada-lang.h (ada_build_task_list): Remove parameter + `warn_if_null'. + * ada-tasks.c (ada_build_task_list): Remove parameter + `warn_if_null'. Adjust implementation and documentation. + (valid_task_id, ada_get_environment_task) + iterate_over_live_ada_tasks): Adjust call to ada_build_task_list. + (info_tasks_command): Adjust implementation. + (task_command): Likewise. + * ravenscar-thread.c (ravenscar_find_new_threads): Fix call + to ada_build_task_list. + +2011-09-16 Joel Brobecker <brobecker@adacore.com> + * ada-tasks.c (ada_tasks_check_symbol_table, task_list): Delete. (enum ada_known_tasks_kind, struct ada_tasks_inferior_data): New. (ada_tasks_inferior_data_handle): New static global. diff --git a/gdb/ada-lang.h b/gdb/ada-lang.h index c363059..cea9804 100644 --- a/gdb/ada-lang.h +++ b/gdb/ada-lang.h @@ -383,6 +383,6 @@ typedef void (ada_task_list_iterator_ftype) (struct ada_task_info *task); extern void iterate_over_live_ada_tasks (ada_task_list_iterator_ftype *iterator); -extern int ada_build_task_list (int warn_if_null); +extern int ada_build_task_list (void); #endif diff --git a/gdb/ada-tasks.c b/gdb/ada-tasks.c index 80509ec..575080a 100644 --- a/gdb/ada-tasks.c +++ b/gdb/ada-tasks.c @@ -330,7 +330,7 @@ valid_task_id (int task_num) { struct ada_tasks_inferior_data *data; - ada_build_task_list (0); + ada_build_task_list (); data = get_ada_tasks_inferior_data (current_inferior ()); return (task_num > 0 && task_num <= VEC_length (ada_task_info_s, data->task_list)); @@ -355,7 +355,7 @@ iterate_over_live_ada_tasks (ada_task_list_iterator_ftype *iterator) struct ada_task_info *task; struct ada_tasks_inferior_data *data; - ada_build_task_list (0); + ada_build_task_list (); data = get_ada_tasks_inferior_data (current_inferior ()); nb_tasks = VEC_length (ada_task_info_s, data->task_list); @@ -905,12 +905,12 @@ read_known_tasks (void) return 1; } -/* Builds the task_list by reading the Known_Tasks array from - the inferior. Prints an appropriate message and returns non-zero - if it failed to build this list. */ +/* Build the task_list by reading the Known_Tasks array from + the inferior, and return the number of tasks in that list + (zero means that the program is not using tasking at all). */ int -ada_build_task_list (int warn_if_null) +ada_build_task_list (void) { struct ada_tasks_inferior_data *data; @@ -921,14 +921,7 @@ ada_build_task_list (int warn_if_null) if (!data->task_list_valid_p) read_known_tasks (); - if (data->task_list == NULL) - { - if (warn_if_null) - printf_filtered (_("Your application does not use any Ada tasks.\n")); - return 0; - } - - return 1; + return VEC_length (ada_task_info_s, data->task_list); } /* Print a one-line description of the task running in inferior INF @@ -1091,10 +1084,14 @@ info_task (char *taskno_str, int from_tty, struct inferior *inf) static void info_tasks_command (char *arg, int from_tty) { - const int task_list_built = ada_build_task_list (1); + struct ui_out *uiout = current_uiout; - if (!task_list_built) - return; + if (ada_build_task_list () == 0) + { + ui_out_message (uiout, 0, + _("Your application does not use any Ada tasks.\n")); + return; + } if (arg == NULL || *arg == '\0') info_tasks (from_tty, current_inferior ()); @@ -1170,10 +1167,14 @@ task_command_1 (char *taskno_str, int from_tty, struct inferior *inf) static void task_command (char *taskno_str, int from_tty) { - const int task_list_built = ada_build_task_list (1); + struct ui_out *uiout = current_uiout; - if (!task_list_built) - return; + if (ada_build_task_list () == 0) + { + ui_out_message (uiout, 0, + _("Your application does not use any Ada tasks.\n")); + return; + } if (taskno_str == NULL || taskno_str[0] == '\0') display_current_task_id (); diff --git a/gdb/ravenscar-thread.c b/gdb/ravenscar-thread.c index b324fe7..696e08a8 100644 --- a/gdb/ravenscar-thread.c +++ b/gdb/ravenscar-thread.c @@ -222,7 +222,7 @@ ravenscar_add_thread (struct ada_task_info *task) 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 |