File tree 1 file changed +27
-1
lines changed
1 file changed +27
-1
lines changed Original file line number Diff line number Diff line change @@ -130,6 +130,23 @@ def update(self):
130
130
def has_children (self ) -> bool :
131
131
return False
132
132
133
+ def get_template_args (type_name : str ) -> List [str ]:
134
+ params = []
135
+ level = 0
136
+ start = 0
137
+ for i , c in enumerate (type_name ):
138
+ if c == "<" :
139
+ level += 1
140
+ if level == 1 :
141
+ start = i + 1
142
+ elif c == ">" :
143
+ level -= 1
144
+ if level == 0 :
145
+ params .append (type_name [start :i ].strip ())
146
+ elif c == "," and level == 1 :
147
+ params .append (type_name [start :i ].strip ())
148
+ start = i + 1
149
+ return params
133
150
134
151
def SizeSummaryProvider (valobj : SBValue , _dict : LLDBOpaque ) -> str :
135
152
return "size=" + str (valobj .GetNumChildren ())
@@ -1050,7 +1067,16 @@ def update(self):
1050
1067
ctrl = inner_table .GetChildMemberWithName ("ctrl" ).GetChildAtIndex (0 )
1051
1068
1052
1069
self .size = inner_table .GetChildMemberWithName ("items" ).GetValueAsUnsigned ()
1053
- self .pair_type = table .type .template_args [0 ]
1070
+
1071
+ template_args = table .type .template_args
1072
+
1073
+ if template_args is None :
1074
+ type_name = table .GetTypeName ()
1075
+ args = get_template_args (type_name )
1076
+ self .pair_type = self .valobj .target .FindFirstType (args [0 ])
1077
+ else :
1078
+ self .pair_type = template_args [0 ]
1079
+
1054
1080
if self .pair_type .IsTypedefType ():
1055
1081
self .pair_type = self .pair_type .GetTypedefedType ()
1056
1082
self .pair_type_size = self .pair_type .GetByteSize ()
You can’t perform that action at this time.
0 commit comments