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 |