diff options
author | Simon Marchi <simon.marchi@efficios.com> | 2020-02-18 17:30:21 -0500 |
---|---|---|
committer | Simon Marchi <simon.marchi@efficios.com> | 2020-02-18 17:33:04 -0500 |
commit | b29a2df0002f541b5408ee28f1f8e88c844d2ffc (patch) | |
tree | 14577b1a137631205d628533cd922b8d58d7cf76 | |
parent | 6740f0cc3bd1530e4aeefe856d9cfe5c0ba2098a (diff) | |
download | gdb-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/ChangeLog | 5 | ||||
-rw-r--r-- | gdb/testsuite/ChangeLog | 5 | ||||
-rw-r--r-- | gdb/testsuite/gdb.base/printcmds.exp | 4 | ||||
-rw-r--r-- | gdb/valprint.c | 4 |
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); |