Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(58)

Side by Side Diff: third_party/WebKit/Tools/lldb/lldb_webkit.py

Issue 2808813002: Update gdb and lldb webkit macros after blink rename (Closed)
Patch Set: Created 3 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « third_party/WebKit/Tools/gdb/webkit.py ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 # Copyright (C) 2012 Apple. All rights reserved. 1 # Copyright (C) 2012 Apple. All rights reserved.
2 # 2 #
3 # Redistribution and use in source and binary forms, with or without 3 # Redistribution and use in source and binary forms, with or without
4 # modification, are permitted provided that the following conditions 4 # modification, are permitted provided that the following conditions
5 # are met: 5 # are met:
6 # 1. Redistributions of source code must retain the above copyright 6 # 1. Redistributions of source code must retain the above copyright
7 # notice, this list of conditions and the following disclaimer. 7 # notice, this list of conditions and the following disclaimer.
8 # 2. Redistributions in binary form must reproduce the above copyright 8 # 2. Redistributions in binary form must reproduce the above copyright
9 # notice, this list of conditions and the following disclaimer in the 9 # notice, this list of conditions and the following disclaimer in the
10 # documentation and/or other materials provided with the distribution. 10 # documentation and/or other materials provided with the distribution.
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
49 provider = WTFStringProvider(valobj, dict) 49 provider = WTFStringProvider(valobj, dict)
50 return "{ length = %d, contents = '%s' }" % (provider.get_length(), provider .to_string()) 50 return "{ length = %d, contents = '%s' }" % (provider.get_length(), provider .to_string())
51 51
52 52
53 def WTFStringImpl_SummaryProvider(valobj, dict): 53 def WTFStringImpl_SummaryProvider(valobj, dict):
54 provider = WTFStringImplProvider(valobj, dict) 54 provider = WTFStringImplProvider(valobj, dict)
55 return "{ length = %d, is8bit = %d, contents = '%s' }" % (provider.get_lengt h(), provider.is_8bit(), provider.to_string()) 55 return "{ length = %d, is8bit = %d, contents = '%s' }" % (provider.get_lengt h(), provider.is_8bit(), provider.to_string())
56 56
57 57
58 def WTFAtomicString_SummaryProvider(valobj, dict): 58 def WTFAtomicString_SummaryProvider(valobj, dict):
59 return WTFString_SummaryProvider(valobj.GetChildMemberWithName('m_string'), dict) 59 return WTFString_SummaryProvider(valobj.GetChildMemberWithName('string_'), d ict)
60 60
61 61
62 def WTFVector_SummaryProvider(valobj, dict): 62 def WTFVector_SummaryProvider(valobj, dict):
63 provider = WTFVectorProvider(valobj, dict) 63 provider = WTFVectorProvider(valobj, dict)
64 return "{ size = %d, capacity = %d }" % (provider.size, provider.capacity) 64 return "{ size = %d, capacity = %d }" % (provider.size, provider.capacity)
65 65
66 66
67 def WTFHashTable_SummaryProvider(valobj, dict): 67 def WTFHashTable_SummaryProvider(valobj, dict):
68 provider = WTFHashTableProvider(valobj, dict) 68 provider = WTFHashTableProvider(valobj, dict)
69 return "{ tableSize = %d, keyCount = %d }" % (provider.tableSize(), provider .keyCount()) 69 return "{ tableSize = %d, keyCount = %d }" % (provider.tableSize(), provider .keyCount())
(...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after
128 out_string = out_string + unichr(char_value) 128 out_string = out_string + unichr(char_value)
129 129
130 return out_string.encode('utf-8') 130 return out_string.encode('utf-8')
131 131
132 132
133 class WTFStringImplProvider: 133 class WTFStringImplProvider:
134 def __init__(self, valobj, dict): 134 def __init__(self, valobj, dict):
135 self.valobj = valobj 135 self.valobj = valobj
136 136
137 def get_length(self): 137 def get_length(self):
138 return self.valobj.GetChildMemberWithName('m_length').GetValueAsUnsigned (0) 138 return self.valobj.GetChildMemberWithName('length_').GetValueAsUnsigned( 0)
139 139
140 def get_data8(self): 140 def get_data8(self):
141 # FIXME: This should be the equivalent of reinterpret_cast<LChar*>(self. valobj + 1)
jochen (gone - plz use gerrit) 2017/04/10 11:47:33 thakis, any idea how to do this?
141 return self.valobj.GetChildAtIndex(2).GetChildMemberWithName('m_data8') 142 return self.valobj.GetChildAtIndex(2).GetChildMemberWithName('m_data8')
142 143
143 def get_data16(self): 144 def get_data16(self):
145 # FIXME: This should be the equivalent of reinterpret_cast<UChar*>(self. valobj + 1)
144 return self.valobj.GetChildAtIndex(2).GetChildMemberWithName('m_data16') 146 return self.valobj.GetChildAtIndex(2).GetChildMemberWithName('m_data16')
145 147
146 def to_string(self): 148 def to_string(self):
147 error = lldb.SBError() 149 error = lldb.SBError()
148 if self.is_8bit(): 150 if self.is_8bit():
149 return lstring_to_string(self.get_data8(), error, self.get_length()) 151 return lstring_to_string(self.get_data8(), error, self.get_length())
150 return ustring_to_string(self.get_data16(), error, self.get_length()) 152 return ustring_to_string(self.get_data16(), error, self.get_length())
151 153
152 def is_8bit(self): 154 def is_8bit(self):
153 # FIXME: find a way to access WTF::StringImpl::s_hashFlag8BitBuffer 155 return self.valobj.GetChildMemberWithName('is8_bit_')
154 return bool(self.valobj.GetChildMemberWithName('m_hashAndFlags').GetValu eAsUnsigned(0) \
155 & 1 << 6)
156 156
157 157
158 class WTFStringProvider: 158 class WTFStringProvider:
159 def __init__(self, valobj, dict): 159 def __init__(self, valobj, dict):
160 self.valobj = valobj 160 self.valobj = valobj
161 161
162 def stringimpl(self): 162 def stringimpl(self):
163 impl_ptr = self.valobj.GetChildMemberWithName('m_impl').GetChildMemberWi thName('m_ptr') 163 impl_ptr = self.valobj.GetChildMemberWithName('impl_').GetChildMemberWit hName('ptr_')
164 return WTFStringImplProvider(impl_ptr, dict) 164 return WTFStringImplProvider(impl_ptr, dict)
165 165
166 def get_length(self): 166 def get_length(self):
167 impl = self.stringimpl() 167 impl = self.stringimpl()
168 if not impl: 168 if not impl:
169 return 0 169 return 0
170 return impl.get_length() 170 return impl.get_length()
171 171
172 def to_string(self): 172 def to_string(self):
173 impl = self.stringimpl() 173 impl = self.stringimpl()
174 if not impl: 174 if not impl:
175 return u"" 175 return u""
176 return impl.to_string() 176 return impl.to_string()
177 177
178 178
179 class WebCoreLayoutUnitProvider: 179 class WebCoreLayoutUnitProvider:
180 "Print a WebCore::LayoutUnit" 180 "Print a WebCore::LayoutUnit"
181 def __init__(self, valobj, dict): 181 def __init__(self, valobj, dict):
182 self.valobj = valobj 182 self.valobj = valobj
183 183
184 def to_string(self): 184 def to_string(self):
185 return "%gpx" % (self.valobj.GetChildMemberWithName('m_value').GetValueA sUnsigned(0) / 64.0) 185 return "%gpx" % (self.valobj.GetChildMemberWithName('value_').GetValueAs Unsigned(0) / 64.0)
186 186
187 187
188 class WebCoreLayoutSizeProvider: 188 class WebCoreLayoutSizeProvider:
189 "Print a WebCore::LayoutSize" 189 "Print a WebCore::LayoutSize"
190 def __init__(self, valobj, dict): 190 def __init__(self, valobj, dict):
191 self.valobj = valobj 191 self.valobj = valobj
192 192
193 def get_width(self): 193 def get_width(self):
194 return WebCoreLayoutUnitProvider(self.valobj.GetChildMemberWithName('m_w idth'), dict).to_string() 194 return WebCoreLayoutUnitProvider(self.valobj.GetChildMemberWithName('wid th_'), dict).to_string()
195 195
196 def get_height(self): 196 def get_height(self):
197 return WebCoreLayoutUnitProvider(self.valobj.GetChildMemberWithName('m_h eight'), dict).to_string() 197 return WebCoreLayoutUnitProvider(self.valobj.GetChildMemberWithName('hei ght_'), dict).to_string()
198 198
199 199
200 class WebCoreLayoutPointProvider: 200 class WebCoreLayoutPointProvider:
201 "Print a WebCore::LayoutPoint" 201 "Print a WebCore::LayoutPoint"
202 def __init__(self, valobj, dict): 202 def __init__(self, valobj, dict):
203 self.valobj = valobj 203 self.valobj = valobj
204 204
205 def get_x(self): 205 def get_x(self):
206 return WebCoreLayoutUnitProvider(self.valobj.GetChildMemberWithName('m_x '), dict).to_string() 206 return WebCoreLayoutUnitProvider(self.valobj.GetChildMemberWithName('x_' ), dict).to_string()
207 207
208 def get_y(self): 208 def get_y(self):
209 return WebCoreLayoutUnitProvider(self.valobj.GetChildMemberWithName('m_y '), dict).to_string() 209 return WebCoreLayoutUnitProvider(self.valobj.GetChildMemberWithName('y_' ), dict).to_string()
210 210
211 211
212 class WTFVectorProvider: 212 class WTFVectorProvider:
213 def __init__(self, valobj, internal_dict): 213 def __init__(self, valobj, internal_dict):
214 self.valobj = valobj 214 self.valobj = valobj
215 self.update() 215 self.update()
216 216
217 def num_children(self): 217 def num_children(self):
218 return self.size + 3 218 return self.size + 3
219 219
220 def get_child_index(self, name): 220 def get_child_index(self, name):
221 if name == "m_size": 221 if name == "size_":
222 return self.size 222 return self.size
223 elif name == "m_capacity": 223 elif name == "capacity_":
224 return self.size + 1 224 return self.size + 1
225 elif name == "m_buffer": 225 elif name == "buffer_":
226 return self.size + 2 226 return self.size + 2
227 else: 227 else:
228 return int(name.lstrip('[').rstrip(']')) 228 return int(name.lstrip('[').rstrip(']'))
229 229
230 def get_child_at_index(self, index): 230 def get_child_at_index(self, index):
231 if index == self.size: 231 if index == self.size:
232 return self.valobj.GetChildMemberWithName("m_size") 232 return self.valobj.GetChildMemberWithName("size_")
233 elif index == self.size + 1: 233 elif index == self.size + 1:
234 return self.valobj.GetChildMemberWithName("m_capacity") 234 return self.valobj.GetChildMemberWithName("capacity_")
235 elif index == self.size + 2: 235 elif index == self.size + 2:
236 return self.buffer 236 return self.buffer
237 elif index < self.size: 237 elif index < self.size:
238 offset = index * self.data_size 238 offset = index * self.data_size
239 child = self.buffer.CreateChildAtOffset('[' + str(index) + ']', offs et, self.data_type) 239 child = self.buffer.CreateChildAtOffset('[' + str(index) + ']', offs et, self.data_type)
240 return child 240 return child
241 else: 241 else:
242 return None 242 return None
243 243
244 def update(self): 244 def update(self):
245 self.buffer = self.valobj.GetChildMemberWithName('m_buffer') 245 self.buffer = self.valobj.GetChildMemberWithName('buffer_')
246 self.size = self.valobj.GetChildMemberWithName('m_size').GetValueAsUnsig ned(0) 246 self.size = self.valobj.GetChildMemberWithName('size_').GetValueAsUnsign ed(0)
247 self.capacity = self.buffer.GetChildMemberWithName('m_capacity').GetValu eAsUnsigned(0) 247 self.capacity = self.buffer.GetChildMemberWithName('capacity_').GetValue AsUnsigned(0)
248 self.data_type = self.buffer.GetType().GetPointeeType() 248 self.data_type = self.buffer.GetType().GetPointeeType()
249 self.data_size = self.data_type.GetByteSize() 249 self.data_size = self.data_type.GetByteSize()
250 250
251 def has_children(self): 251 def has_children(self):
252 return True 252 return True
253 253
254 254
255 class WTFHashTableProvider: 255 class WTFHashTableProvider:
256 def __init__(self, valobj, internal_dict): 256 def __init__(self, valobj, internal_dict):
257 self.valobj = valobj 257 self.valobj = valobj
258 self.update() 258 self.update()
259 259
260 def num_children(self): 260 def num_children(self):
261 return self.tableSize() + 5 261 return self.tableSize() + 5
262 262
263 def get_child_index(self, name): 263 def get_child_index(self, name):
264 if name == "m_table": 264 if name == "table_":
265 return self.tableSize() 265 return self.tableSize()
266 elif name == "m_tableSize": 266 elif name == "table_size_":
267 return self.tableSize() + 1 267 return self.tableSize() + 1
268 elif name == "m_tableSizeMask": 268 elif name == "table_size_mask_":
269 return self.tableSize() + 2 269 return self.tableSize() + 2
270 elif name == "m_keyCount": 270 elif name == "key_count_":
271 return self.tableSize() + 3 271 return self.tableSize() + 3
272 elif name == "m_deletedCount": 272 elif name == "deleted_count_":
273 return self.tableSize() + 4 273 return self.tableSize() + 4
274 else: 274 else:
275 return int(name.lstrip('[').rstrip(']')) 275 return int(name.lstrip('[').rstrip(']'))
276 276
277 def get_child_at_index(self, index): 277 def get_child_at_index(self, index):
278 if index == self.tableSize(): 278 if index == self.tableSize():
279 return self.valobj.GetChildMemberWithName('m_table') 279 return self.valobj.GetChildMemberWithName('table_')
280 elif index == self.tableSize() + 1: 280 elif index == self.tableSize() + 1:
281 return self.valobj.GetChildMemberWithName('m_tableSize') 281 return self.valobj.GetChildMemberWithName('table_size_')
282 elif index == self.tableSize() + 2: 282 elif index == self.tableSize() + 2:
283 return self.valobj.GetChildMemberWithName('m_tableSizeMask') 283 return self.valobj.GetChildMemberWithName('table_size_mask_')
284 elif index == self.tableSize() + 3: 284 elif index == self.tableSize() + 3:
285 return self.valobj.GetChildMemberWithName('m_keyCount') 285 return self.valobj.GetChildMemberWithName('key_count_')
286 elif index == self.tableSize() + 4: 286 elif index == self.tableSize() + 4:
287 return self.valobj.GetChildMemberWithName('m_deletedCount') 287 return self.valobj.GetChildMemberWithName('deleted_count_')
288 elif index < self.tableSize(): 288 elif index < self.tableSize():
289 table = self.valobj.GetChildMemberWithName('m_table') 289 table = self.valobj.GetChildMemberWithName('table_')
290 return table.CreateChildAtOffset('[' + str(index) + ']', index * sel f.data_size, self.data_type) 290 return table.CreateChildAtOffset('[' + str(index) + ']', index * sel f.data_size, self.data_type)
291 else: 291 else:
292 return None 292 return None
293 293
294 def tableSize(self): 294 def tableSize(self):
295 return self.valobj.GetChildMemberWithName('m_tableSize').GetValueAsUnsig ned(0) 295 return self.valobj.GetChildMemberWithName('table_size_').GetValueAsUnsig ned(0)
296 296
297 def keyCount(self): 297 def keyCount(self):
298 return self.valobj.GetChildMemberWithName('m_keyCount').GetValueAsUnsign ed(0) 298 return self.valobj.GetChildMemberWithName('key_count_').GetValueAsUnsign ed(0)
299 299
300 def update(self): 300 def update(self):
301 self.data_type = self.valobj.GetType().GetTemplateArgumentType(0) 301 self.data_type = self.valobj.GetType().GetTemplateArgumentType(0)
302 self.data_size = self.data_type.GetByteSize() 302 self.data_size = self.data_type.GetByteSize()
303 303
304 def has_children(self): 304 def has_children(self):
305 return True 305 return True
OLDNEW
« no previous file with comments | « third_party/WebKit/Tools/gdb/webkit.py ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698