/* Dump out a table of register groups for the current architecture. */
static void
-reggroups_dump (struct gdbarch *gdbarch, struct ui_file *file)
+reggroups_dump (gdbarch *gdbarch, ui_out *out)
{
- static constexpr const char *fmt = " %-10s %-10s\n";
-
- gdb_printf (file, fmt, "Group", "Type");
+ ui_out_emit_table table (out, 2, -1, "RegGroups");
+ out->table_header (10, ui_left, "group", "Group");
+ out->table_header (10, ui_left, "type", "Type");
+ out->table_body ();
for (const struct reggroup *group : gdbarch_reggroups (gdbarch))
{
+ ui_out_emit_tuple tuple_emitter (out, nullptr);
+
/* Group name. */
- const char *name = group->name ();
+ out->field_string ("group", group->name ());
/* Group type. */
const char *type;
/* Note: If you change this, be sure to also update the
documentation. */
-
- gdb_printf (file, fmt, name, type);
+ out->field_string ("type", type);
+ out->text ("\n");
}
}
struct gdbarch *gdbarch = get_current_arch ();
if (args == NULL)
- reggroups_dump (gdbarch, gdb_stdout);
+ reggroups_dump (gdbarch, current_uiout);
else
{
stdio_file file;
if (!file.open (args, "w"))
perror_with_name (_("maintenance print reggroups"));
- reggroups_dump (gdbarch, &file);
+ ui_out_redirect_pop redirect (current_uiout, &file);
+ reggroups_dump (gdbarch, current_uiout);
}
}
set groups {}
set test "maint print reggroups"
gdb_test_multiple $test $test {
- -re ".*Group\[ \t\]+Type\[ \t\]+\r\n" {
+ -re "Group\[ \t\]+Type\[ \t\]+\r\n" {
exp_continue
}
- -re "^ (\[^ \t\]+)\[ \t\]+\[^\r\n\]+\r\n" {
+ -re "^(\[^ \t\]+)\[ \t\]+\[^\r\n\]+\r\n" {
lappend groups $expect_out(1,string)
exp_continue
}
gdb_assert {[llength $py_groups] > 0} \
"Found at least one register group from python"
gdb_assert {[llength $py_groups] == [llength $groups]} \
- "Same numnber of registers groups found"
+ "Same number of registers groups found"
set found_non_match 0
for { set i 0 } { $i < [llength $groups] } { incr i } {
"type = flag mixed_flags {\r\n *bool A @0;\r\n *uint32_t B @1-3;\r\n *bool C @4;\r\n *uint32_t D @5;\r\n *uint32_t @6-7;\r\n *enum Z_values {yes = 1, no = 0, maybe = 2, so} Z @8-9;\r\n}"
# Reggroups should have at least general and the extra foo group
gdb_test "maintenance print reggroups" \
- " Group\[ \t\]+Type\[ \t\]+\r\n.* general\[ \t\]+user\[ \t\]+\r\n.* foo\[ \t\]+user\[ \t\]+"
+ "Group\[ \t\]+Type\[ \t\]+\r\n.*general\[ \t\]+user\[ \t\]+\r\n.*foo\[ \t\]+user\[ \t\]+"
with_test_prefix "core-only.xml" {
load_description "core-only.xml" "" "test-regs.xml"