| OLD | NEW |
| 1 #!/usr/bin/env python | 1 #!/usr/bin/env python |
| 2 # | 2 # |
| 3 # Copyright 2011 the V8 project authors. All rights reserved. | 3 # Copyright 2011 the V8 project authors. All rights reserved. |
| 4 # Redistribution and use in source and binary forms, with or without | 4 # Redistribution and use in source and binary forms, with or without |
| 5 # modification, are permitted provided that the following conditions are | 5 # modification, are permitted provided that the following conditions are |
| 6 # met: | 6 # met: |
| 7 # | 7 # |
| 8 # * Redistributions of source code must retain the above copyright | 8 # * Redistributions of source code must retain the above copyright |
| 9 # notice, this list of conditions and the following disclaimer. | 9 # notice, this list of conditions and the following disclaimer. |
| 10 # * Redistributions in binary form must reproduce the above | 10 # * Redistributions in binary form must reproduce the above |
| (...skipping 488 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 499 return 8 | 499 return 8 |
| 500 elif self.arch == MD_CPU_ARCHITECTURE_X86: | 500 elif self.arch == MD_CPU_ARCHITECTURE_X86: |
| 501 return 4 | 501 return 4 |
| 502 | 502 |
| 503 def Register(self, name): | 503 def Register(self, name): |
| 504 return self.exception_context.__getattribute__(name) | 504 return self.exception_context.__getattribute__(name) |
| 505 | 505 |
| 506 | 506 |
| 507 # List of V8 instance types. Obtained by adding the code below to any .cc file. | 507 # List of V8 instance types. Obtained by adding the code below to any .cc file. |
| 508 # | 508 # |
| 509 # #define DUMP_TYPE(T) printf("%d: \"%s\",\n", T, #T); | 509 # #define DUMP_TYPE(T) printf(" %d: \"%s\",\n", T, #T); |
| 510 # struct P { | 510 # struct P { |
| 511 # P() { | 511 # P() { |
| 512 # printf("{\n"); | 512 # printf("INSTANCE_TYPES = {\n"); |
| 513 # INSTANCE_TYPE_LIST(DUMP_TYPE) | 513 # INSTANCE_TYPE_LIST(DUMP_TYPE) |
| 514 # printf("}\n"); | 514 # printf("}\n"); |
| 515 # } | 515 # } |
| 516 # }; | 516 # }; |
| 517 # static P p; | 517 # static P p; |
| 518 INSTANCE_TYPES = { | 518 INSTANCE_TYPES = { |
| 519 64: "SYMBOL_TYPE", | 519 64: "SYMBOL_TYPE", |
| 520 68: "ASCII_SYMBOL_TYPE", | 520 68: "ASCII_SYMBOL_TYPE", |
| 521 65: "CONS_SYMBOL_TYPE", | 521 65: "CONS_SYMBOL_TYPE", |
| 522 69: "CONS_ASCII_SYMBOL_TYPE", | 522 69: "CONS_ASCII_SYMBOL_TYPE", |
| (...skipping 26 matching lines...) Expand all Loading... |
| 549 136: "EXTERNAL_BYTE_ARRAY_TYPE", | 549 136: "EXTERNAL_BYTE_ARRAY_TYPE", |
| 550 137: "EXTERNAL_UNSIGNED_BYTE_ARRAY_TYPE", | 550 137: "EXTERNAL_UNSIGNED_BYTE_ARRAY_TYPE", |
| 551 138: "EXTERNAL_SHORT_ARRAY_TYPE", | 551 138: "EXTERNAL_SHORT_ARRAY_TYPE", |
| 552 139: "EXTERNAL_UNSIGNED_SHORT_ARRAY_TYPE", | 552 139: "EXTERNAL_UNSIGNED_SHORT_ARRAY_TYPE", |
| 553 140: "EXTERNAL_INT_ARRAY_TYPE", | 553 140: "EXTERNAL_INT_ARRAY_TYPE", |
| 554 141: "EXTERNAL_UNSIGNED_INT_ARRAY_TYPE", | 554 141: "EXTERNAL_UNSIGNED_INT_ARRAY_TYPE", |
| 555 142: "EXTERNAL_FLOAT_ARRAY_TYPE", | 555 142: "EXTERNAL_FLOAT_ARRAY_TYPE", |
| 556 144: "EXTERNAL_PIXEL_ARRAY_TYPE", | 556 144: "EXTERNAL_PIXEL_ARRAY_TYPE", |
| 557 146: "FILLER_TYPE", | 557 146: "FILLER_TYPE", |
| 558 147: "ACCESSOR_INFO_TYPE", | 558 147: "ACCESSOR_INFO_TYPE", |
| 559 148: "ACCESS_CHECK_INFO_TYPE", | 559 148: "ACCESSOR_PAIR_TYPE", |
| 560 149: "INTERCEPTOR_INFO_TYPE", | 560 149: "ACCESS_CHECK_INFO_TYPE", |
| 561 150: "CALL_HANDLER_INFO_TYPE", | 561 150: "INTERCEPTOR_INFO_TYPE", |
| 562 151: "FUNCTION_TEMPLATE_INFO_TYPE", | 562 151: "CALL_HANDLER_INFO_TYPE", |
| 563 152: "OBJECT_TEMPLATE_INFO_TYPE", | 563 152: "FUNCTION_TEMPLATE_INFO_TYPE", |
| 564 153: "SIGNATURE_INFO_TYPE", | 564 153: "OBJECT_TEMPLATE_INFO_TYPE", |
| 565 154: "TYPE_SWITCH_INFO_TYPE", | 565 154: "SIGNATURE_INFO_TYPE", |
| 566 155: "SCRIPT_TYPE", | 566 155: "TYPE_SWITCH_INFO_TYPE", |
| 567 156: "CODE_CACHE_TYPE", | 567 156: "SCRIPT_TYPE", |
| 568 157: "POLYMORPHIC_CODE_CACHE_TYPE", | 568 157: "CODE_CACHE_TYPE", |
| 569 160: "FIXED_ARRAY_TYPE", | 569 158: "POLYMORPHIC_CODE_CACHE_TYPE", |
| 570 161: "FIXED_ARRAY_TYPE", |
| 570 145: "FIXED_DOUBLE_ARRAY_TYPE", | 571 145: "FIXED_DOUBLE_ARRAY_TYPE", |
| 571 161: "SHARED_FUNCTION_INFO_TYPE", | 572 162: "SHARED_FUNCTION_INFO_TYPE", |
| 572 162: "JS_MESSAGE_OBJECT_TYPE", | 573 163: "JS_MESSAGE_OBJECT_TYPE", |
| 573 165: "JS_VALUE_TYPE", | 574 166: "JS_VALUE_TYPE", |
| 574 166: "JS_OBJECT_TYPE", | 575 167: "JS_OBJECT_TYPE", |
| 575 167: "JS_CONTEXT_EXTENSION_OBJECT_TYPE", | 576 168: "JS_CONTEXT_EXTENSION_OBJECT_TYPE", |
| 576 168: "JS_GLOBAL_OBJECT_TYPE", | 577 169: "JS_GLOBAL_OBJECT_TYPE", |
| 577 169: "JS_BUILTINS_OBJECT_TYPE", | 578 170: "JS_BUILTINS_OBJECT_TYPE", |
| 578 170: "JS_GLOBAL_PROXY_TYPE", | 579 171: "JS_GLOBAL_PROXY_TYPE", |
| 579 171: "JS_ARRAY_TYPE", | 580 172: "JS_ARRAY_TYPE", |
| 580 164: "JS_PROXY_TYPE", | 581 165: "JS_PROXY_TYPE", |
| 581 174: "JS_WEAK_MAP_TYPE", | 582 175: "JS_WEAK_MAP_TYPE", |
| 582 175: "JS_REGEXP_TYPE", | 583 176: "JS_REGEXP_TYPE", |
| 583 176: "JS_FUNCTION_TYPE", | 584 177: "JS_FUNCTION_TYPE", |
| 584 163: "JS_FUNCTION_PROXY_TYPE", | 585 164: "JS_FUNCTION_PROXY_TYPE", |
| 585 158: "DEBUG_INFO_TYPE", | 586 159: "DEBUG_INFO_TYPE", |
| 586 159: "BREAK_POINT_INFO_TYPE", | 587 160: "BREAK_POINT_INFO_TYPE", |
| 587 } | 588 } |
| 588 | 589 |
| 589 | 590 |
| 590 class Printer(object): | 591 class Printer(object): |
| 591 """Printer with indentation support.""" | 592 """Printer with indentation support.""" |
| 592 | 593 |
| 593 def __init__(self): | 594 def __init__(self): |
| 594 self.indent = 0 | 595 self.indent = 0 |
| 595 | 596 |
| 596 def Indent(self): | 597 def Indent(self): |
| (...skipping 460 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1057 reader.Dispose() | 1058 reader.Dispose() |
| 1058 | 1059 |
| 1059 | 1060 |
| 1060 if __name__ == "__main__": | 1061 if __name__ == "__main__": |
| 1061 parser = optparse.OptionParser(USAGE) | 1062 parser = optparse.OptionParser(USAGE) |
| 1062 options, args = parser.parse_args() | 1063 options, args = parser.parse_args() |
| 1063 if len(args) != 1: | 1064 if len(args) != 1: |
| 1064 parser.print_help() | 1065 parser.print_help() |
| 1065 sys.exit(1) | 1066 sys.exit(1) |
| 1066 AnalyzeMinidump(options, args[0]) | 1067 AnalyzeMinidump(options, args[0]) |
| OLD | NEW |