| OLD | NEW | 
|---|
| 1 # Copyright (C) 2010, Google Inc. All rights reserved. | 1 # Copyright (C) 2010, Google Inc. 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 are | 4 # modification, are permitted provided that the following conditions are | 
| 5 # met: | 5 # met: | 
| 6 # | 6 # | 
| 7 #     * Redistributions of source code must retain the above copyright | 7 #     * Redistributions of source code must retain the above copyright | 
| 8 # notice, this list of conditions and the following disclaimer. | 8 # notice, this list of conditions and the following disclaimer. | 
| 9 #     * Redistributions in binary form must reproduce the above | 9 #     * Redistributions in binary form must reproduce the above | 
| 10 # copyright notice, this list of conditions and the following disclaimer | 10 # copyright notice, this list of conditions and the following disclaimer | 
| (...skipping 327 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 338         start = self.val['m_buffer'] | 338         start = self.val['m_buffer'] | 
| 339         return self.Iterator(start, start + self.val['m_size']) | 339         return self.Iterator(start, start + self.val['m_size']) | 
| 340 | 340 | 
| 341     def to_string(self): | 341     def to_string(self): | 
| 342         return ('%s of length %d, capacity %d' | 342         return ('%s of length %d, capacity %d' | 
| 343                 % ('WTF::Vector', self.val['m_size'], self.val['m_capacity'])) | 343                 % ('WTF::Vector', self.val['m_size'], self.val['m_capacity'])) | 
| 344 | 344 | 
| 345     def display_hint(self): | 345     def display_hint(self): | 
| 346         return 'array' | 346         return 'array' | 
| 347 | 347 | 
|  | 348 | 
|  | 349 # Copied from //tools/gdb/gdb_chrome.py | 
|  | 350 def typed_ptr(ptr): | 
|  | 351     """Prints a pointer along with its exact type. | 
|  | 352 | 
|  | 353     By default, gdb would print just the address, which takes more | 
|  | 354     steps to interpret. | 
|  | 355     """ | 
|  | 356     # Returning this as a cast expression surrounded by parentheses | 
|  | 357     # makes it easier to cut+paste inside of gdb. | 
|  | 358     return '((%s)%s)' % (ptr.dynamic_type, ptr) | 
|  | 359 | 
|  | 360 | 
|  | 361 class WTFRefOrOwnPtrPrinter: | 
|  | 362     def __init__(self, val): | 
|  | 363         self.val = val | 
|  | 364 | 
|  | 365     def to_string(self): | 
|  | 366         type_without_param = re.sub(r'<.*>', '', self.val.type.name) | 
|  | 367         return '%s%s' % (type_without_param, typed_ptr(self.val['m_ptr'])) | 
|  | 368 | 
|  | 369 | 
|  | 370 class BlinkDataRefPrinter: | 
|  | 371     def __init__(self, val): | 
|  | 372         self.val = val | 
|  | 373 | 
|  | 374     def to_string(self): | 
|  | 375         return 'DataRef(%s)' % ( | 
|  | 376             WTFRefOrOwnPtrPrinter(self.val['m_data']).to_string()) | 
|  | 377 | 
|  | 378 | 
| 348 def add_pretty_printers(): | 379 def add_pretty_printers(): | 
| 349     pretty_printers = ( | 380     pretty_printers = ( | 
| 350         (re.compile("^WTF::Vector<.*>$"), WTFVectorPrinter), | 381         (re.compile("^WTF::Vector<.*>$"), WTFVectorPrinter), | 
| 351         (re.compile("^WTF::AtomicString$"), WTFAtomicStringPrinter), | 382         (re.compile("^WTF::AtomicString$"), WTFAtomicStringPrinter), | 
| 352         (re.compile("^WTF::CString$"), WTFCStringPrinter), | 383         (re.compile("^WTF::CString$"), WTFCStringPrinter), | 
| 353         (re.compile("^WTF::String$"), WTFStringPrinter), | 384         (re.compile("^WTF::String$"), WTFStringPrinter), | 
| 354         (re.compile("^WTF::StringImpl$"), WTFStringImplPrinter), | 385         (re.compile("^WTF::StringImpl$"), WTFStringImplPrinter), | 
| 355         (re.compile("^blink::KURL$"), blinkKURLPrinter), | 386         (re.compile("^blink::KURL$"), blinkKURLPrinter), | 
| 356         (re.compile("^blink::LayoutUnit$"), blinkLayoutUnitPrinter), | 387         (re.compile("^blink::LayoutUnit$"), blinkLayoutUnitPrinter), | 
| 357         (re.compile("^blink::LayoutPoint$"), blinkLayoutPointPrinter), | 388         (re.compile("^blink::LayoutPoint$"), blinkLayoutPointPrinter), | 
| 358         (re.compile("^blink::LayoutSize$"), blinkLayoutSizePrinter), | 389         (re.compile("^blink::LayoutSize$"), blinkLayoutSizePrinter), | 
| 359         (re.compile("^blink::QualifiedName$"), blinkQualifiedNamePrinter), | 390         (re.compile("^blink::QualifiedName$"), blinkQualifiedNamePrinter), | 
| 360         (re.compile("^blink::PixelsAndPercent$"), BlinkPixelsAndPercentPrinter), | 391         (re.compile("^blink::PixelsAndPercent$"), BlinkPixelsAndPercentPrinter), | 
| 361         (re.compile("^blink::Length$"), BlinkLengthPrinter), | 392         (re.compile("^blink::Length$"), BlinkLengthPrinter), | 
|  | 393         (re.compile("^WTF::(Ref|Own)Ptr<.*>$"), WTFRefOrOwnPtrPrinter), | 
|  | 394         (re.compile("^blink::DataRef<.*>$"), BlinkDataRefPrinter), | 
| 362     ) | 395     ) | 
| 363 | 396 | 
| 364     def lookup_function(val): | 397     def lookup_function(val): | 
| 365         """Function used to load pretty printers; will be passed to GDB.""" | 398         """Function used to load pretty printers; will be passed to GDB.""" | 
| 366         type = val.type | 399         type = val.type | 
| 367         if type.code == gdb.TYPE_CODE_REF: | 400         if type.code == gdb.TYPE_CODE_REF: | 
| 368             type = type.target() | 401             type = type.target() | 
| 369         type = type.unqualified().strip_typedefs() | 402         type = type.unqualified().strip_typedefs() | 
| 370         tag = type.tag | 403         tag = type.tag | 
| 371         if tag: | 404         if tag: | 
| (...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 418             padding = '' | 451             padding = '' | 
| 419             while len(stack) > 0: | 452             while len(stack) > 0: | 
| 420                 pair = stack.pop() | 453                 pair = stack.pop() | 
| 421                 print(padding, pair[1], pair[0]) | 454                 print(padding, pair[1], pair[0]) | 
| 422                 padding = padding + '  ' | 455                 padding = padding + '  ' | 
| 423         else: | 456         else: | 
| 424             print('Sorry: I don\'t know how to deal with %s yet.' % target_type) | 457             print('Sorry: I don\'t know how to deal with %s yet.' % target_type) | 
| 425 | 458 | 
| 426 | 459 | 
| 427 PrintPathToRootCommand() | 460 PrintPathToRootCommand() | 
| OLD | NEW | 
|---|