Skip to content

Commit 905ed3b

Browse files
committed
Resolve typedefs in HashMap gdb/lldb pretty-printers
`GetTypedefedType` (LLDB) and `strip_typedefs` (GDB) calls are needed to resolve key and value types completely. Without these calls, debugger doesn't show the actual type. * Before (without `GetTypedefedType`): (lldb) frame variable hm[0] (T) hm[0] = { ... } * After (with `GetTypedefedType`): (lldb) frame variable hm[0] ((i32, alloc::string::String)) hm[0] = { ... }
1 parent ae6aa22 commit 905ed3b

File tree

2 files changed

+2
-2
lines changed

2 files changed

+2
-2
lines changed

src/etc/gdb_providers.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -351,7 +351,7 @@ def __init__(self, valobj, show_values=True):
351351
ctrl = table["ctrl"]["pointer"]
352352

353353
self.size = int(table["items"])
354-
self.pair_type = table.type.template_argument(0)
354+
self.pair_type = table.type.template_argument(0).strip_typedefs()
355355

356356
self.new_layout = not table.type.has_key("data")
357357
if self.new_layout:

src/etc/lldb_providers.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -531,7 +531,7 @@ def update(self):
531531
ctrl = table.GetChildMemberWithName("ctrl").GetChildAtIndex(0)
532532

533533
self.size = table.GetChildMemberWithName("items").GetValueAsUnsigned()
534-
self.pair_type = table.type.template_args[0]
534+
self.pair_type = table.type.template_args[0].GetTypedefedType()
535535
self.pair_type_size = self.pair_type.GetByteSize()
536536

537537
self.new_layout = not table.GetChildMemberWithName("data").IsValid()

0 commit comments

Comments
 (0)