diff options
-rw-r--r-- | gdb/ChangeLog | 5 | ||||
-rw-r--r-- | gdb/inferior.c | 30 |
2 files changed, 31 insertions, 4 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog index d9754e5..000b6e8 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,8 @@ +2009-06-05 Tom Tromey <tromey@redhat.com> + + * inferior.c (print_inferior): Make a table, not a list. Emit + table headers. + 2009-06-10 Jonas Maebe <jonas.maebe@elis.ugent.be> * darwin-nat.c (darwin_stop_inferior): Pass 0 as options to diff --git a/gdb/inferior.c b/gdb/inferior.c index 723006b..a99a3be 100644 --- a/gdb/inferior.c +++ b/gdb/inferior.c @@ -302,8 +302,31 @@ print_inferior (struct ui_out *uiout, int requested_inferior) { struct inferior *inf; struct cleanup *old_chain; + int inf_count = 0; - old_chain = make_cleanup_ui_out_list_begin_end (uiout, "inferiors"); + /* Compute number of inferiors we will print. */ + for (inf = inferior_list; inf; inf = inf->next) + { + struct cleanup *chain2; + + if (requested_inferior != -1 && inf->num != requested_inferior) + continue; + + ++inf_count; + } + + if (inf_count == 0) + { + ui_out_message (uiout, 0, "No inferiors.\n"); + return; + } + + old_chain = make_cleanup_ui_out_table_begin_end (uiout, 3, inf_count, + "inferiors"); + ui_out_table_header (uiout, 3, ui_right, "current", "Cur"); + ui_out_table_header (uiout, 4, ui_right, "id", "Id"); + ui_out_table_header (uiout, 7, ui_right, "target-id", "PID"); + ui_out_table_body (uiout); for (inf = inferior_list; inf; inf = inf->next) { @@ -315,12 +338,11 @@ print_inferior (struct ui_out *uiout, int requested_inferior) chain2 = make_cleanup_ui_out_tuple_begin_end (uiout, NULL); if (inf->pid == ptid_get_pid (inferior_ptid)) - ui_out_text (uiout, "* "); + ui_out_field_string (uiout, "current", "*"); else - ui_out_text (uiout, " "); + ui_out_field_skip (uiout, "current"); ui_out_field_int (uiout, "id", inf->num); - ui_out_text (uiout, " "); ui_out_field_int (uiout, "target-id", inf->pid); ui_out_text (uiout, "\n"); |