aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSimon Marchi <simon.marchi@efficios.com>2020-02-18 17:30:21 -0500
committerSimon Marchi <simon.marchi@efficios.com>2020-02-18 17:33:04 -0500
commitb29a2df0002f541b5408ee28f1f8e88c844d2ffc (patch)
tree14577b1a137631205d628533cd922b8d58d7cf76
parent6740f0cc3bd1530e4aeefe856d9cfe5c0ba2098a (diff)
downloadgdb-b29a2df0002f541b5408ee28f1f8e88c844d2ffc.zip
gdb-b29a2df0002f541b5408ee28f1f8e88c844d2ffc.tar.gz
gdb-b29a2df0002f541b5408ee28f1f8e88c844d2ffc.tar.bz2
gdb: print unknown part of flag enum in hex
When we print the "unknown" part of a flag enum, it is printed in decimal. I think it would be more useful if it was printed in hex, as it helps to determine which bits are set more than a decimal value. gdb/ChangeLog: * valprint.c (generic_val_print_enum_1): Print unknown part of flag enum in hex. gdb/testsuite/ChangeLog: * gdb.base/printcmds.exp (test_print_enums): Expect hex values for "unknown".
-rw-r--r--gdb/ChangeLog5
-rw-r--r--gdb/testsuite/ChangeLog5
-rw-r--r--gdb/testsuite/gdb.base/printcmds.exp4
-rw-r--r--gdb/valprint.c4
4 files changed, 14 insertions, 4 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 6ea5959..cc47e2d 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,5 +1,10 @@
2020-02-18 Simon Marchi <simon.marchi@efficios.com>
+ * valprint.c (generic_val_print_enum_1): Print unknown part of
+ flag enum in hex.
+
+2020-02-18 Simon Marchi <simon.marchi@efficios.com>
+
* dwarf2/read.c (update_enumeration_type_from_children): Allow
flag enums to contain duplicate enumerators.
* valprint.c (generic_val_print_enum_1): Update comment.
diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog
index 4f63dde..087714b 100644
--- a/gdb/testsuite/ChangeLog
+++ b/gdb/testsuite/ChangeLog
@@ -1,5 +1,10 @@
2020-02-18 Simon Marchi <simon.marchi@efficios.com>
+ * gdb.base/printcmds.exp (test_print_enums): Expect hex values
+ for "unknown".
+
+2020-02-18 Simon Marchi <simon.marchi@efficios.com>
+
* gdb.base/printcmds.c (enum flag_enum): Add FE_TWO_LEGACY
enumerator.
diff --git a/gdb/testsuite/gdb.base/printcmds.exp b/gdb/testsuite/gdb.base/printcmds.exp
index 6afb965..d6f5c75 100644
--- a/gdb/testsuite/gdb.base/printcmds.exp
+++ b/gdb/testsuite/gdb.base/printcmds.exp
@@ -743,10 +743,10 @@ proc test_print_enums {} {
gdb_test "print (enum flag_enum) 0x0" [string_to_regexp " = FE_NONE"]
# Print a flag enum with value 0, where no enumerator has value 0.
- gdb_test "print flag_enum_without_zero" [string_to_regexp " = (unknown: 0)"]
+ gdb_test "print flag_enum_without_zero" [string_to_regexp " = (unknown: 0x0)"]
# Print a flag enum with unknown bits set.
- gdb_test "print (enum flag_enum) 0xf1" [string_to_regexp " = (FE_ONE | unknown: 240)"]
+ gdb_test "print (enum flag_enum) 0xf1" [string_to_regexp " = (FE_ONE | unknown: 0xf0)"]
# Test printing an enum not considered a "flag enum" (because one of its
# enumerators has multiple bits set).
diff --git a/gdb/valprint.c b/gdb/valprint.c
index 888c9cd..67049e7 100644
--- a/gdb/valprint.c
+++ b/gdb/valprint.c
@@ -660,8 +660,8 @@ generic_val_print_enum_1 (struct type *type, LONGEST val,
{
if (!first)
fputs_filtered (" | ", stream);
- fputs_filtered ("unknown: ", stream);
- print_longest (stream, 'd', 0, val);
+ fputs_filtered ("unknown: 0x", stream);
+ print_longest (stream, 'x', 0, val);
}
fputs_filtered (")", stream);