From 54e75f291ef10f2ccb0549b25e0d9d207b325c79 Mon Sep 17 00:00:00 2001 From: Andrew Burgess Date: Tue, 1 Dec 2020 11:07:12 +0000 Subject: gdbsupport/tdesc: print enum fields using 'evalue' syntax Currently when printing an XML description GDB prints enum values like this: This is incorrect, and is most likely a copy and paste error with the struct and flags printing code. The correct syntax is: A test is included to cover this functionality. gdb/testsuite/ChangeLog: * gdb.xml/maint-xml-dump-03.xml: New file. gdbsupport/ChangeLog: * tdesc.cc (print_xml_feature::visit): Print enum fields using 'evalue' syntax. --- gdbsupport/tdesc.cc | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'gdbsupport/tdesc.cc') diff --git a/gdbsupport/tdesc.cc b/gdbsupport/tdesc.cc index 2bc0247..c062a77 100644 --- a/gdbsupport/tdesc.cc +++ b/gdbsupport/tdesc.cc @@ -355,8 +355,10 @@ void print_xml_feature::visit (const tdesc_type_with_fields *t) string_appendf (tmp, " size=\"%d\"", t->size); string_appendf (tmp, ">"); add_line (tmp); + /* The 'start' of the field is reused as the enum value. The 'end' + of the field is always set to -1 for enum values. */ for (const tdesc_type_field &f : t->fields) - add_line (" ", + add_line (" ", f.name.c_str (), f.start); break; -- cgit v1.1