| 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 |