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)
This commit is contained in:
+6
-5
@@ -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);
|
||||
}
|
||||
|
||||
/*
|
||||
|
||||
Reference in New Issue
Block a user