OLD | NEW |
1 #!/usr/bin/env python | 1 #!/usr/bin/env python |
2 # | 2 # |
3 # Copyright 2012 the V8 project authors. All rights reserved. | 3 # Copyright 2012 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 845 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
856 # Map* m = Map::cast(o); | 856 # Map* m = Map::cast(o); |
857 # const char* n = ""; | 857 # const char* n = ""; |
858 # intptr_t p = reinterpret_cast<intptr_t>(m) & 0xfffff; | 858 # intptr_t p = reinterpret_cast<intptr_t>(m) & 0xfffff; |
859 # int t = m->instance_type(); | 859 # int t = m->instance_type(); |
860 # ROOT_LIST(ROOT_LIST_CASE) | 860 # ROOT_LIST(ROOT_LIST_CASE) |
861 # STRUCT_LIST(STRUCT_LIST_CASE) | 861 # STRUCT_LIST(STRUCT_LIST_CASE) |
862 # printf(" 0x%05x: (%d, \"%s\"),\n", p, t, n); | 862 # printf(" 0x%05x: (%d, \"%s\"),\n", p, t, n); |
863 # } | 863 # } |
864 # printf("}\n"); | 864 # printf("}\n"); |
865 KNOWN_MAPS = { | 865 KNOWN_MAPS = { |
866 0x08081: (128, "MetaMap"), | 866 0x08081: (134, "ByteArrayMap"), |
867 0x080a5: (163, "FixedArrayMap"), | 867 0x080a1: (128, "MetaMap"), |
868 0x080c9: (130, "OddballMap"), | 868 0x080c1: (130, "OddballMap"), |
869 0x080ed: (163, "FixedCOWArrayMap"), | 869 0x080e1: (163, "FixedArrayMap"), |
870 0x08111: (163, "ScopeInfoMap"), | 870 0x08101: (68, "AsciiSymbolMap"), |
871 0x08135: (132, "HeapNumberMap"), | 871 0x08121: (132, "HeapNumberMap"), |
872 0x08159: (133, "ForeignMap"), | 872 0x08141: (135, "FreeSpaceMap"), |
873 0x0817d: (64, "SymbolMap"), | 873 0x08161: (146, "OnePointerFillerMap"), |
874 0x081a1: (68, "AsciiSymbolMap"), | 874 0x08181: (146, "TwoPointerFillerMap"), |
875 0x081c5: (65, "ConsSymbolMap"), | 875 0x081a1: (131, "GlobalPropertyCellMap"), |
876 0x081e9: (69, "ConsAsciiSymbolMap"), | 876 0x081c1: (164, "SharedFunctionInfoMap"), |
877 0x0820d: (66, "ExternalSymbolMap"), | 877 0x081e1: (4, "AsciiStringMap"), |
878 0x08231: (74, "ExternalSymbolWithAsciiDataMap"), | 878 0x08201: (163, "GlobalContextMap"), |
879 0x08255: (70, "ExternalAsciiSymbolMap"), | 879 0x08221: (129, "CodeMap"), |
880 0x08279: (82, "ShortExternalSymbolMap"), | 880 0x08241: (163, "ScopeInfoMap"), |
881 0x0829d: (90, "ShortExternalSymbolWithAsciiDataMap"), | 881 0x08261: (163, "FixedCOWArrayMap"), |
882 0x082c1: (86, "ShortExternalAsciiSymbolMap"), | 882 0x08281: (145, "FixedDoubleArrayMap"), |
883 0x082e5: (0, "StringMap"), | 883 0x082a1: (163, "HashTableMap"), |
884 0x08309: (4, "AsciiStringMap"), | 884 0x082c1: (0, "StringMap"), |
885 0x0832d: (1, "ConsStringMap"), | 885 0x082e1: (64, "SymbolMap"), |
886 0x08351: (5, "ConsAsciiStringMap"), | 886 0x08301: (1, "ConsStringMap"), |
887 0x08375: (3, "SlicedStringMap"), | 887 0x08321: (5, "ConsAsciiStringMap"), |
888 0x08399: (7, "SlicedAsciiStringMap"), | 888 0x08341: (3, "SlicedStringMap"), |
889 0x083bd: (2, "ExternalStringMap"), | 889 0x08361: (7, "SlicedAsciiStringMap"), |
890 0x083e1: (10, "ExternalStringWithAsciiDataMap"), | 890 0x08381: (65, "ConsSymbolMap"), |
891 0x08405: (6, "ExternalAsciiStringMap"), | 891 0x083a1: (69, "ConsAsciiSymbolMap"), |
892 0x08429: (18, "ShortExternalStringMap"), | 892 0x083c1: (66, "ExternalSymbolMap"), |
893 0x0844d: (26, "ShortExternalStringWithAsciiDataMap"), | 893 0x083e1: (74, "ExternalSymbolWithAsciiDataMap"), |
894 0x08471: (22, "ShortExternalAsciiStringMap"), | 894 0x08401: (70, "ExternalAsciiSymbolMap"), |
895 0x08495: (0, "UndetectableStringMap"), | 895 0x08421: (2, "ExternalStringMap"), |
896 0x084b9: (4, "UndetectableAsciiStringMap"), | 896 0x08441: (10, "ExternalStringWithAsciiDataMap"), |
897 0x084dd: (145, "FixedDoubleArrayMap"), | 897 0x08461: (6, "ExternalAsciiStringMap"), |
898 0x08501: (134, "ByteArrayMap"), | 898 0x08481: (82, "ShortExternalSymbolMap"), |
899 0x08525: (135, "FreeSpaceMap"), | 899 0x084a1: (90, "ShortExternalSymbolWithAsciiDataMap"), |
900 0x08549: (144, "ExternalPixelArrayMap"), | 900 0x084c1: (86, "ShortExternalAsciiSymbolMap"), |
901 0x0856d: (136, "ExternalByteArrayMap"), | 901 0x084e1: (18, "ShortExternalStringMap"), |
902 0x08591: (137, "ExternalUnsignedByteArrayMap"), | 902 0x08501: (26, "ShortExternalStringWithAsciiDataMap"), |
903 0x085b5: (138, "ExternalShortArrayMap"), | 903 0x08521: (22, "ShortExternalAsciiStringMap"), |
904 0x085d9: (139, "ExternalUnsignedShortArrayMap"), | 904 0x08541: (0, "UndetectableStringMap"), |
905 0x085fd: (140, "ExternalIntArrayMap"), | 905 0x08561: (4, "UndetectableAsciiStringMap"), |
906 0x08621: (141, "ExternalUnsignedIntArrayMap"), | 906 0x08581: (144, "ExternalPixelArrayMap"), |
907 0x08645: (142, "ExternalFloatArrayMap"), | 907 0x085a1: (136, "ExternalByteArrayMap"), |
908 0x08669: (163, "NonStrictArgumentsElementsMap"), | 908 0x085c1: (137, "ExternalUnsignedByteArrayMap"), |
909 0x0868d: (143, "ExternalDoubleArrayMap"), | 909 0x085e1: (138, "ExternalShortArrayMap"), |
910 0x086b1: (129, "CodeMap"), | 910 0x08601: (139, "ExternalUnsignedShortArrayMap"), |
911 0x086d5: (131, "GlobalPropertyCellMap"), | 911 0x08621: (140, "ExternalIntArrayMap"), |
912 0x086f9: (146, "OnePointerFillerMap"), | 912 0x08641: (141, "ExternalUnsignedIntArrayMap"), |
913 0x0871d: (146, "TwoPointerFillerMap"), | 913 0x08661: (142, "ExternalFloatArrayMap"), |
914 0x08741: (147, "AccessorInfoMap"), | 914 0x08681: (143, "ExternalDoubleArrayMap"), |
915 0x08765: (148, "AccessorPairMap"), | 915 0x086a1: (163, "NonStrictArgumentsElementsMap"), |
916 0x08789: (149, "AccessCheckInfoMap"), | 916 0x086c1: (163, "FunctionContextMap"), |
917 0x087ad: (150, "InterceptorInfoMap"), | 917 0x086e1: (163, "CatchContextMap"), |
918 0x087d1: (151, "CallHandlerInfoMap"), | 918 0x08701: (163, "WithContextMap"), |
919 0x087f5: (152, "FunctionTemplateInfoMap"), | 919 0x08721: (163, "BlockContextMap"), |
920 0x08819: (153, "ObjectTemplateInfoMap"), | 920 0x08741: (163, "ModuleContextMap"), |
921 0x0883d: (154, "SignatureInfoMap"), | 921 0x08761: (165, "JSMessageObjectMap"), |
922 0x08861: (155, "TypeSwitchInfoMap"), | 922 0x08781: (133, "ForeignMap"), |
923 0x08885: (156, "ScriptMap"), | 923 0x087a1: (170, "NeanderMap"), |
924 0x088a9: (157, "CodeCacheMap"), | 924 0x087c1: (158, "PolymorphicCodeCacheMap"), |
925 0x088cd: (158, "PolymorphicCodeCacheMap"), | 925 0x087e1: (156, "ScriptMap"), |
926 0x088f1: (159, "TypeFeedbackInfoMap"), | 926 0x08801: (147, "AccessorInfoMap"), |
927 0x08915: (160, "AliasedArgumentsEntryMap"), | 927 0x08821: (148, "AccessorPairMap"), |
928 0x08939: (161, "DebugInfoMap"), | 928 0x08841: (149, "AccessCheckInfoMap"), |
929 0x0895d: (162, "BreakPointInfoMap"), | 929 0x08861: (150, "InterceptorInfoMap"), |
930 0x08981: (163, "HashTableMap"), | 930 0x08881: (151, "CallHandlerInfoMap"), |
931 0x089a5: (163, "FunctionContextMap"), | 931 0x088a1: (152, "FunctionTemplateInfoMap"), |
932 0x089c9: (163, "CatchContextMap"), | 932 0x088c1: (153, "ObjectTemplateInfoMap"), |
933 0x089ed: (163, "WithContextMap"), | 933 0x088e1: (154, "SignatureInfoMap"), |
934 0x08a11: (163, "BlockContextMap"), | 934 0x08901: (155, "TypeSwitchInfoMap"), |
935 0x08a35: (163, "ModuleContextMap"), | 935 0x08921: (157, "CodeCacheMap"), |
936 0x08a59: (163, "GlobalContextMap"), | 936 0x08941: (159, "TypeFeedbackInfoMap"), |
937 0x08a7d: (163, "NativeContextMap"), | 937 0x08961: (160, "AliasedArgumentsEntryMap"), |
938 0x08aa1: (164, "SharedFunctionInfoMap"), | 938 0x08981: (161, "DebugInfoMap"), |
939 0x08ac5: (165, "JSMessageObjectMap"), | 939 0x089a1: (162, "BreakPointInfoMap"), |
940 0x08ae9: (170, "ExternalMap"), | |
941 0x08b0d: (170, "NeanderMap"), | |
942 } | 940 } |
943 | 941 |
944 | 942 |
945 # List of known V8 objects. Used to determine name for objects that are | 943 # List of known V8 objects. Used to determine name for objects that are |
946 # part of the root-set and hence on the first page of various old-space | 944 # part of the root-set and hence on the first page of various old-space |
947 # paged. Obtained by adding the code below to an IA32 release build with | 945 # paged. Obtained by adding the code below to an IA32 release build with |
948 # enabled snapshots to the end of the Isolate::Init method. | 946 # enabled snapshots to the end of the Isolate::Init method. |
949 # | 947 # |
950 # #define ROOT_LIST_CASE(type, name, camel_name) \ | 948 # #define ROOT_LIST_CASE(type, name, camel_name) \ |
951 # if (o == heap_.name()) n = #camel_name; | 949 # if (o == heap_.name()) n = #camel_name; |
(...skipping 887 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1839 help="start an interactive inspector shell") | 1837 help="start an interactive inspector shell") |
1840 parser.add_option("-f", "--full", dest="full", action="store_true", | 1838 parser.add_option("-f", "--full", dest="full", action="store_true", |
1841 help="dump all information contained in the minidump") | 1839 help="dump all information contained in the minidump") |
1842 parser.add_option("--symdir", dest="symdir", default=".", | 1840 parser.add_option("--symdir", dest="symdir", default=".", |
1843 help="directory containing *.pdb.sym file with symbols") | 1841 help="directory containing *.pdb.sym file with symbols") |
1844 options, args = parser.parse_args() | 1842 options, args = parser.parse_args() |
1845 if len(args) != 1: | 1843 if len(args) != 1: |
1846 parser.print_help() | 1844 parser.print_help() |
1847 sys.exit(1) | 1845 sys.exit(1) |
1848 AnalyzeMinidump(options, args[0]) | 1846 AnalyzeMinidump(options, args[0]) |
OLD | NEW |