aboutsummaryrefslogtreecommitdiff
path: root/sys/ddb
diff options
context:
space:
mode:
authorBojan Novković <bnovkov@FreeBSD.org>2024-04-03 15:47:00 +0000
committerBojan Novković <bnovkov@FreeBSD.org>2024-04-03 16:17:11 +0000
commitaada453dcbaab1b8f7d50b66add5a38eb9e06cc3 (patch)
treebc3fcb75d994d4ccbe8da227b8c04018a68ecd8e /sys/ddb
parent87e63f2e7f92e192c1e8b01ac7cc45b88c03a478 (diff)
downloadsrc-aada453dcbaab1b8f7d50b66add5a38eb9e06cc3.tar.gz
src-aada453dcbaab1b8f7d50b66add5a38eb9e06cc3.zip
ddb: Properly pretty-print non-labeled enum values
The ddb pretty-printer currently does not print out enum values that are not labeled (e.g. X | Y). The enum printer was reworked to print non-labeled values. Reported by: jrtc27 Fixes: c21bc6f ("ddb: Add CTF-based pretty printing") Approved by: markj (mentor)
Diffstat (limited to 'sys/ddb')
-rw-r--r--sys/ddb/db_pprint.c11
1 files changed, 6 insertions, 5 deletions
diff --git a/sys/ddb/db_pprint.c b/sys/ddb/db_pprint.c
index 8aa14550f068..b4116372cf65 100644
--- a/sys/ddb/db_pprint.c
+++ b/sys/ddb/db_pprint.c
@@ -225,13 +225,14 @@ db_pprint_enum(db_addr_t addr, struct ctf_type_v3 *type, u_int depth)
for (; ep < endp; ep++) {
if (val == ep->cte_value) {
valname = db_ctf_stroff_to_str(&sym_data, ep->cte_name);
- if (valname != NULL)
- db_printf("%s (0x%lx)", valname, (long)val);
- else
- db_printf("(0x%lx)", (long)val);
- break;
+ if (valname != NULL) {
+ db_printf("%s (0x%lx)", valname, val);
+ break;
+ }
}
}
+ if (ep == endp)
+ db_printf("0x%lx", val);
}
/*