Use ui_out for "maint info frame-unwinders"

Message ID 20230322165616.2036104-1-tromey@adacore.com
State New
Headers
Series Use ui_out for "maint info frame-unwinders" |

Commit Message

Tom Tromey March 22, 2023, 4:56 p.m. UTC
  This changes "maint info frame-unwinders" to use ui-out.  This makes
the table slightly nicer.  In general I think it's better to use
ui-out for tables.
---
 gdb/frame-unwind.c | 11 ++++++++++-
 1 file changed, 10 insertions(+), 1 deletion(-)
  

Comments

Tom Tromey April 7, 2023, 3:18 p.m. UTC | #1
>>>>> "Tom" == Tom Tromey via Gdb-patches <gdb-patches@sourceware.org> writes:

Tom> This changes "maint info frame-unwinders" to use ui-out.  This makes
Tom> the table slightly nicer.  In general I think it's better to use
Tom> ui-out for tables.

I'm checking this in.

Tom
  

Patch

diff --git a/gdb/frame-unwind.c b/gdb/frame-unwind.c
index a3673dde77a..866b2e6b4a6 100644
--- a/gdb/frame-unwind.c
+++ b/gdb/frame-unwind.c
@@ -347,13 +347,22 @@  maintenance_info_frame_unwinders (const char *args, int from_tty)
   struct gdbarch *gdbarch = target_gdbarch ();
   struct frame_unwind_table *table = get_frame_unwind_table (gdbarch);
 
+  ui_out *uiout = current_uiout;
+  ui_out_emit_table table_emitter (uiout, 2, -1, "FrameUnwinders");
+  uiout->table_header (27, ui_left, "name", "Name");
+  uiout->table_header (25, ui_left, "type", "Type");
+  uiout->table_body ();
+
   for (struct frame_unwind_table_entry *entry = table->list; entry != NULL;
        entry = entry->next)
     {
       const char *name = entry->unwinder->name;
       const char *type = frame_type_str (entry->unwinder->type);
 
-      gdb_printf (gdb_stdout, "%-16s\t%-16s\n", name, type);
+      ui_out_emit_list tuple_emitter (uiout, nullptr);
+      uiout->field_string ("name", name);
+      uiout->field_string ("type", type);
+      uiout->text ("\n");
     }
 }