diff options
author | Tom Tromey <tom@tromey.com> | 2024-10-03 16:48:25 -0600 |
---|---|---|
committer | Tom Tromey <tom@tromey.com> | 2024-10-08 17:07:37 -0600 |
commit | 57f5c841c33c49583338048d06a4dfd5cefd7e40 (patch) | |
tree | e22ce461b22ff7a31f495ffb82aff0ce4d55c96a /gdb/corelow.c | |
parent | 09ff58c1ad9b5894aa9b7965071d4133ab2202ac (diff) | |
download | gdb-57f5c841c33c49583338048d06a4dfd5cefd7e40.zip gdb-57f5c841c33c49583338048d06a4dfd5cefd7e40.tar.gz gdb-57f5c841c33c49583338048d06a4dfd5cefd7e40.tar.bz2 |
Use ui-out tables for info proc mappings
This changes a few implementations of "info proc mappings" to use
ui-out tables rather than printf.
Note that NetBSD and FreeBSD also use printfs here, but since I can't
test these, I didn't update them.
Approved-By: Andrew Burgess <aburgess@redhat.com>
Diffstat (limited to 'gdb/corelow.c')
-rw-r--r-- | gdb/corelow.c | 55 |
1 files changed, 23 insertions, 32 deletions
diff --git a/gdb/corelow.c b/gdb/corelow.c index ab2fa74..5820ffe 100644 --- a/gdb/corelow.c +++ b/gdb/corelow.c @@ -1698,24 +1698,19 @@ get_current_core_target () void core_target::info_proc_mappings (struct gdbarch *gdbarch) { - if (!m_core_file_mappings.empty ()) - { - gdb_printf (_("Mapped address spaces:\n\n")); - if (gdbarch_addr_bit (gdbarch) == 32) - { - gdb_printf ("\t%10s %10s %10s %10s %s\n", - "Start Addr", - " End Addr", - " Size", " Offset", "objfile"); - } - else - { - gdb_printf (" %18s %18s %10s %10s %s\n", - "Start Addr", - " End Addr", - " Size", " Offset", "objfile"); - } - } + if (m_core_file_mappings.empty ()) + return; + + gdb_printf (_("Mapped address spaces:\n\n")); + ui_out_emit_table emitter (current_uiout, 5, -1, "ProcMappings"); + + int width = gdbarch_addr_bit (gdbarch) == 32 ? 10 : 18; + current_uiout->table_header (width, ui_left, "start", "Start Addr"); + current_uiout->table_header (width, ui_left, "end", "End Addr"); + current_uiout->table_header (width, ui_left, "size", "Size"); + current_uiout->table_header (width, ui_left, "offset", "Offset"); + current_uiout->table_header (0, ui_left, "objfile", "File"); + current_uiout->table_body (); for (const target_section &tsp : m_core_file_mappings) { @@ -1724,20 +1719,16 @@ core_target::info_proc_mappings (struct gdbarch *gdbarch) ULONGEST file_ofs = tsp.the_bfd_section->filepos; const char *filename = bfd_get_filename (tsp.the_bfd_section->owner); - if (gdbarch_addr_bit (gdbarch) == 32) - gdb_printf ("\t%10s %10s %10s %10s %s\n", - paddress (gdbarch, start), - paddress (gdbarch, end), - hex_string (end - start), - hex_string (file_ofs), - filename); - else - gdb_printf (" %18s %18s %10s %10s %s\n", - paddress (gdbarch, start), - paddress (gdbarch, end), - hex_string (end - start), - hex_string (file_ofs), - filename); + ui_out_emit_tuple tuple_emitter (current_uiout, nullptr); + current_uiout->field_core_addr ("start", gdbarch, start); + current_uiout->field_core_addr ("end", gdbarch, end); + /* These next two aren't really addresses and so shouldn't be + styled as such. */ + current_uiout->field_string ("size", paddress (gdbarch, end - start)); + current_uiout->field_string ("offset", paddress (gdbarch, file_ofs)); + current_uiout->field_string ("objfile", filename, + file_name_style.style ()); + current_uiout->text ("\n"); } } |