| OLD | NEW |
| 1 // Copyright 2011 the V8 project authors. All rights reserved. | 1 // Copyright 2011 the V8 project authors. All rights reserved. |
| 2 // Redistribution and use in source and binary forms, with or without | 2 // Redistribution and use in source and binary forms, with or without |
| 3 // modification, are permitted provided that the following conditions are | 3 // modification, are permitted provided that the following conditions are |
| 4 // met: | 4 // met: |
| 5 // | 5 // |
| 6 // * Redistributions of source code must retain the above copyright | 6 // * Redistributions of source code must retain the above copyright |
| 7 // notice, this list of conditions and the following disclaimer. | 7 // notice, this list of conditions and the following disclaimer. |
| 8 // * Redistributions in binary form must reproduce the above | 8 // * Redistributions in binary form must reproduce the above |
| 9 // copyright notice, this list of conditions and the following | 9 // copyright notice, this list of conditions and the following |
| 10 // disclaimer in the documentation and/or other materials provided | 10 // disclaimer in the documentation and/or other materials provided |
| (...skipping 885 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 896 CallbackEventInternal("get ", name, entry_point); | 896 CallbackEventInternal("get ", name, entry_point); |
| 897 } | 897 } |
| 898 | 898 |
| 899 | 899 |
| 900 void Logger::SetterCallbackEvent(Name* name, Address entry_point) { | 900 void Logger::SetterCallbackEvent(Name* name, Address entry_point) { |
| 901 if (!log_->IsEnabled() || !FLAG_log_code) return; | 901 if (!log_->IsEnabled() || !FLAG_log_code) return; |
| 902 CallbackEventInternal("set ", name, entry_point); | 902 CallbackEventInternal("set ", name, entry_point); |
| 903 } | 903 } |
| 904 | 904 |
| 905 | 905 |
| 906 void Logger::CodeCreateEvent(LogEventsAndTags tag, | 906 void Logger::AppendName(Name* name) { |
| 907 Code* code, | 907 if (name->IsString()) { |
| 908 const char* comment) { | 908 name_buffer_->AppendString(String::cast(name)); |
| 909 if (!is_logging_code_events()) return; | 909 } else { |
| 910 if (FLAG_ll_prof || Serializer::enabled() || code_event_handler_ != NULL) { | 910 Symbol* symbol = Symbol::cast(name); |
| 911 name_buffer_->AppendBytes("symbol("); |
| 912 if (!symbol->name()->IsUndefined()) { |
| 913 name_buffer_->AppendBytes("\""); |
| 914 name_buffer_->AppendString(String::cast(symbol->name())); |
| 915 name_buffer_->AppendBytes("\" "); |
| 916 } |
| 917 name_buffer_->AppendBytes("hash "); |
| 918 name_buffer_->AppendHex(symbol->Hash()); |
| 919 name_buffer_->AppendByte(')'); |
| 920 } |
| 921 } |
| 922 |
| 923 |
| 924 void Logger::InitNameBuffer(LogEventsAndTags tag) { |
| 911 name_buffer_->Reset(); | 925 name_buffer_->Reset(); |
| 912 name_buffer_->AppendBytes(kLogEventsNames[tag]); | 926 name_buffer_->AppendBytes(kLogEventsNames[tag]); |
| 913 name_buffer_->AppendByte(':'); | 927 name_buffer_->AppendByte(':'); |
| 914 name_buffer_->AppendBytes(comment); | 928 } |
| 915 } | 929 |
| 930 |
| 931 void Logger::LogRecordedBuffer(Code* code, SharedFunctionInfo* shared) { |
| 916 if (code_event_handler_ != NULL) { | 932 if (code_event_handler_ != NULL) { |
| 917 IssueCodeAddedEvent(code, NULL, name_buffer_->get(), name_buffer_->size()); | 933 Script* script = shared && shared->script()->IsScript() ? |
| 934 Script::cast(shared->script()) : NULL; |
| 935 IssueCodeAddedEvent(code, |
| 936 script, |
| 937 name_buffer_->get(), |
| 938 name_buffer_->size()); |
| 918 } | 939 } |
| 919 if (!log_->IsEnabled()) return; | 940 if (!log_->IsEnabled()) return; |
| 920 if (FLAG_ll_prof) { | 941 if (FLAG_ll_prof) { |
| 921 LowLevelCodeCreateEvent(code, name_buffer_->get(), name_buffer_->size()); | 942 LowLevelCodeCreateEvent(code, name_buffer_->get(), name_buffer_->size()); |
| 922 } | 943 } |
| 923 if (Serializer::enabled()) { | 944 if (Serializer::enabled()) { |
| 924 RegisterSnapshotCodeName(code, name_buffer_->get(), name_buffer_->size()); | 945 RegisterSnapshotCodeName(code, name_buffer_->get(), name_buffer_->size()); |
| 925 } | 946 } |
| 926 if (!FLAG_log_code) return; | 947 } |
| 948 |
| 949 |
| 950 void Logger::CodeCreateEvent(LogEventsAndTags tag, |
| 951 Code* code, |
| 952 const char* comment) { |
| 953 if (!is_logging_code_events()) return; |
| 954 if (FLAG_ll_prof || Serializer::enabled() || code_event_handler_ != NULL) { |
| 955 InitNameBuffer(tag); |
| 956 name_buffer_->AppendBytes(comment); |
| 957 LogRecordedBuffer(code, NULL); |
| 958 } |
| 959 |
| 960 if (!FLAG_log_code || !log_->IsEnabled()) return; |
| 927 LogMessageBuilder msg(this); | 961 LogMessageBuilder msg(this); |
| 928 msg.Append("%s,%s,%d,", | 962 msg.Append("%s,%s,%d,", |
| 929 kLogEventsNames[CODE_CREATION_EVENT], | 963 kLogEventsNames[CODE_CREATION_EVENT], |
| 930 kLogEventsNames[tag], | 964 kLogEventsNames[tag], |
| 931 code->kind()); | 965 code->kind()); |
| 932 msg.AppendAddress(code->address()); | 966 msg.AppendAddress(code->address()); |
| 933 msg.Append(",%d,\"", code->ExecutableSize()); | 967 msg.Append(",%d,\"", code->ExecutableSize()); |
| 934 for (const char* p = comment; *p != '\0'; p++) { | 968 for (const char* p = comment; *p != '\0'; p++) { |
| 935 if (*p == '"') { | 969 if (*p == '"') { |
| 936 msg.Append('\\'); | 970 msg.Append('\\'); |
| 937 } | 971 } |
| 938 msg.Append(*p); | 972 msg.Append(*p); |
| 939 } | 973 } |
| 940 msg.Append('"'); | 974 msg.Append('"'); |
| 941 msg.Append('\n'); | 975 msg.Append('\n'); |
| 942 msg.WriteToLogFile(); | 976 msg.WriteToLogFile(); |
| 943 } | 977 } |
| 944 | 978 |
| 945 | 979 |
| 946 void Logger::CodeCreateEvent(LogEventsAndTags tag, | 980 void Logger::CodeCreateEvent(LogEventsAndTags tag, |
| 947 Code* code, | 981 Code* code, |
| 948 Name* name) { | 982 Name* name) { |
| 949 if (!is_logging_code_events()) return; | 983 if (!is_logging_code_events()) return; |
| 950 if (FLAG_ll_prof || Serializer::enabled() || code_event_handler_ != NULL) { | 984 if (FLAG_ll_prof || Serializer::enabled() || code_event_handler_ != NULL) { |
| 951 name_buffer_->Reset(); | 985 InitNameBuffer(tag); |
| 952 name_buffer_->AppendBytes(kLogEventsNames[tag]); | 986 AppendName(name); |
| 953 name_buffer_->AppendByte(':'); | 987 LogRecordedBuffer(code, NULL); |
| 954 if (name->IsString()) { | |
| 955 name_buffer_->AppendString(String::cast(name)); | |
| 956 } else { | |
| 957 Symbol* symbol = Symbol::cast(name); | |
| 958 name_buffer_->AppendBytes("symbol("); | |
| 959 if (!symbol->name()->IsUndefined()) { | |
| 960 name_buffer_->AppendBytes("\""); | |
| 961 name_buffer_->AppendString(String::cast(symbol->name())); | |
| 962 name_buffer_->AppendBytes("\" "); | |
| 963 } | |
| 964 name_buffer_->AppendBytes("hash "); | |
| 965 name_buffer_->AppendHex(symbol->Hash()); | |
| 966 name_buffer_->AppendByte(')'); | |
| 967 } | |
| 968 } | 988 } |
| 969 if (code_event_handler_ != NULL) { | 989 |
| 970 IssueCodeAddedEvent(code, NULL, name_buffer_->get(), name_buffer_->size()); | 990 if (!FLAG_log_code || !log_->IsEnabled()) return; |
| 971 } | |
| 972 if (!log_->IsEnabled()) return; | |
| 973 if (FLAG_ll_prof) { | |
| 974 LowLevelCodeCreateEvent(code, name_buffer_->get(), name_buffer_->size()); | |
| 975 } | |
| 976 if (Serializer::enabled()) { | |
| 977 RegisterSnapshotCodeName(code, name_buffer_->get(), name_buffer_->size()); | |
| 978 } | |
| 979 if (!FLAG_log_code) return; | |
| 980 LogMessageBuilder msg(this); | 991 LogMessageBuilder msg(this); |
| 981 msg.Append("%s,%s,%d,", | 992 msg.Append("%s,%s,%d,", |
| 982 kLogEventsNames[CODE_CREATION_EVENT], | 993 kLogEventsNames[CODE_CREATION_EVENT], |
| 983 kLogEventsNames[tag], | 994 kLogEventsNames[tag], |
| 984 code->kind()); | 995 code->kind()); |
| 985 msg.AppendAddress(code->address()); | 996 msg.AppendAddress(code->address()); |
| 986 msg.Append(",%d,", code->ExecutableSize()); | 997 msg.Append(",%d,", code->ExecutableSize()); |
| 987 if (name->IsString()) { | 998 if (name->IsString()) { |
| 988 msg.Append('"'); | 999 msg.Append('"'); |
| 989 msg.AppendDetailed(String::cast(name), false); | 1000 msg.AppendDetailed(String::cast(name), false); |
| (...skipping 23 matching lines...) Expand all Loading... |
| 1013 } | 1024 } |
| 1014 | 1025 |
| 1015 | 1026 |
| 1016 void Logger::CodeCreateEvent(LogEventsAndTags tag, | 1027 void Logger::CodeCreateEvent(LogEventsAndTags tag, |
| 1017 Code* code, | 1028 Code* code, |
| 1018 SharedFunctionInfo* shared, | 1029 SharedFunctionInfo* shared, |
| 1019 CompilationInfo* info, | 1030 CompilationInfo* info, |
| 1020 Name* name) { | 1031 Name* name) { |
| 1021 if (!is_logging_code_events()) return; | 1032 if (!is_logging_code_events()) return; |
| 1022 if (FLAG_ll_prof || Serializer::enabled() || code_event_handler_ != NULL) { | 1033 if (FLAG_ll_prof || Serializer::enabled() || code_event_handler_ != NULL) { |
| 1023 name_buffer_->Reset(); | 1034 InitNameBuffer(tag); |
| 1024 name_buffer_->AppendBytes(kLogEventsNames[tag]); | |
| 1025 name_buffer_->AppendByte(':'); | |
| 1026 name_buffer_->AppendBytes(ComputeMarker(code)); | 1035 name_buffer_->AppendBytes(ComputeMarker(code)); |
| 1027 if (name->IsString()) { | 1036 AppendName(name); |
| 1028 name_buffer_->AppendString(String::cast(name)); | 1037 LogRecordedBuffer(code, shared); |
| 1029 } else { | |
| 1030 Symbol* symbol = Symbol::cast(name); | |
| 1031 name_buffer_->AppendBytes("symbol("); | |
| 1032 if (!symbol->name()->IsUndefined()) { | |
| 1033 name_buffer_->AppendBytes("\""); | |
| 1034 name_buffer_->AppendString(String::cast(symbol->name())); | |
| 1035 name_buffer_->AppendBytes("\" "); | |
| 1036 } | |
| 1037 name_buffer_->AppendBytes("hash "); | |
| 1038 name_buffer_->AppendHex(symbol->Hash()); | |
| 1039 name_buffer_->AppendByte(')'); | |
| 1040 } | |
| 1041 } | 1038 } |
| 1042 if (code_event_handler_ != NULL) { | 1039 |
| 1043 Script* script = | 1040 if (!FLAG_log_code || !log_->IsEnabled()) return; |
| 1044 shared->script()->IsScript() ? Script::cast(shared->script()) : NULL; | |
| 1045 IssueCodeAddedEvent(code, | |
| 1046 script, | |
| 1047 name_buffer_->get(), | |
| 1048 name_buffer_->size()); | |
| 1049 } | |
| 1050 if (!log_->IsEnabled()) return; | |
| 1051 if (FLAG_ll_prof) { | |
| 1052 LowLevelCodeCreateEvent(code, name_buffer_->get(), name_buffer_->size()); | |
| 1053 } | |
| 1054 if (Serializer::enabled()) { | |
| 1055 RegisterSnapshotCodeName(code, name_buffer_->get(), name_buffer_->size()); | |
| 1056 } | |
| 1057 if (!FLAG_log_code) return; | |
| 1058 if (code == Isolate::Current()->builtins()->builtin( | 1041 if (code == Isolate::Current()->builtins()->builtin( |
| 1059 Builtins::kLazyCompile)) | 1042 Builtins::kLazyCompile)) |
| 1060 return; | 1043 return; |
| 1061 | 1044 |
| 1062 LogMessageBuilder msg(this); | 1045 LogMessageBuilder msg(this); |
| 1063 msg.Append("%s,%s,%d,", | 1046 msg.Append("%s,%s,%d,", |
| 1064 kLogEventsNames[CODE_CREATION_EVENT], | 1047 kLogEventsNames[CODE_CREATION_EVENT], |
| 1065 kLogEventsNames[tag], | 1048 kLogEventsNames[tag], |
| 1066 code->kind()); | 1049 code->kind()); |
| 1067 msg.AppendAddress(code->address()); | 1050 msg.AppendAddress(code->address()); |
| (...skipping 23 matching lines...) Expand all Loading... |
| 1091 // Although, it is possible to extract source and line from | 1074 // Although, it is possible to extract source and line from |
| 1092 // the SharedFunctionInfo object, we left it to caller | 1075 // the SharedFunctionInfo object, we left it to caller |
| 1093 // to leave logging functions free from heap allocations. | 1076 // to leave logging functions free from heap allocations. |
| 1094 void Logger::CodeCreateEvent(LogEventsAndTags tag, | 1077 void Logger::CodeCreateEvent(LogEventsAndTags tag, |
| 1095 Code* code, | 1078 Code* code, |
| 1096 SharedFunctionInfo* shared, | 1079 SharedFunctionInfo* shared, |
| 1097 CompilationInfo* info, | 1080 CompilationInfo* info, |
| 1098 Name* source, int line) { | 1081 Name* source, int line) { |
| 1099 if (!is_logging_code_events()) return; | 1082 if (!is_logging_code_events()) return; |
| 1100 if (FLAG_ll_prof || Serializer::enabled() || code_event_handler_ != NULL) { | 1083 if (FLAG_ll_prof || Serializer::enabled() || code_event_handler_ != NULL) { |
| 1101 name_buffer_->Reset(); | 1084 InitNameBuffer(tag); |
| 1102 name_buffer_->AppendBytes(kLogEventsNames[tag]); | |
| 1103 name_buffer_->AppendByte(':'); | |
| 1104 name_buffer_->AppendBytes(ComputeMarker(code)); | 1085 name_buffer_->AppendBytes(ComputeMarker(code)); |
| 1105 name_buffer_->AppendString(shared->DebugName()); | 1086 name_buffer_->AppendString(shared->DebugName()); |
| 1106 name_buffer_->AppendByte(' '); | 1087 name_buffer_->AppendByte(' '); |
| 1107 if (source->IsString()) { | 1088 if (source->IsString()) { |
| 1108 name_buffer_->AppendString(String::cast(source)); | 1089 name_buffer_->AppendString(String::cast(source)); |
| 1109 } else { | 1090 } else { |
| 1110 name_buffer_->AppendBytes("symbol(hash "); | 1091 name_buffer_->AppendBytes("symbol(hash "); |
| 1111 name_buffer_->AppendHex(Name::cast(source)->Hash()); | 1092 name_buffer_->AppendHex(Name::cast(source)->Hash()); |
| 1112 name_buffer_->AppendByte(')'); | 1093 name_buffer_->AppendByte(')'); |
| 1113 } | 1094 } |
| 1114 name_buffer_->AppendByte(':'); | 1095 name_buffer_->AppendByte(':'); |
| 1115 name_buffer_->AppendInt(line); | 1096 name_buffer_->AppendInt(line); |
| 1097 LogRecordedBuffer(code, shared); |
| 1116 } | 1098 } |
| 1117 if (code_event_handler_ != NULL) { | 1099 |
| 1118 Script* script = | 1100 if (!FLAG_log_code || !log_->IsEnabled()) return; |
| 1119 shared->script()->IsScript() ? Script::cast(shared->script()) : NULL; | |
| 1120 IssueCodeAddedEvent(code, | |
| 1121 script, | |
| 1122 name_buffer_->get(), | |
| 1123 name_buffer_->size()); | |
| 1124 } | |
| 1125 if (!log_->IsEnabled()) return; | |
| 1126 if (FLAG_ll_prof) { | |
| 1127 LowLevelCodeCreateEvent(code, name_buffer_->get(), name_buffer_->size()); | |
| 1128 } | |
| 1129 if (Serializer::enabled()) { | |
| 1130 RegisterSnapshotCodeName(code, name_buffer_->get(), name_buffer_->size()); | |
| 1131 } | |
| 1132 if (!FLAG_log_code) return; | |
| 1133 LogMessageBuilder msg(this); | 1101 LogMessageBuilder msg(this); |
| 1134 SmartArrayPointer<char> name = | 1102 SmartArrayPointer<char> name = |
| 1135 shared->DebugName()->ToCString(DISALLOW_NULLS, ROBUST_STRING_TRAVERSAL); | 1103 shared->DebugName()->ToCString(DISALLOW_NULLS, ROBUST_STRING_TRAVERSAL); |
| 1136 msg.Append("%s,%s,%d,", | 1104 msg.Append("%s,%s,%d,", |
| 1137 kLogEventsNames[CODE_CREATION_EVENT], | 1105 kLogEventsNames[CODE_CREATION_EVENT], |
| 1138 kLogEventsNames[tag], | 1106 kLogEventsNames[tag], |
| 1139 code->kind()); | 1107 code->kind()); |
| 1140 msg.AppendAddress(code->address()); | 1108 msg.AppendAddress(code->address()); |
| 1141 msg.Append(",%d,\"%s ", code->ExecutableSize(), *name); | 1109 msg.Append(",%d,\"%s ", code->ExecutableSize(), *name); |
| 1142 if (source->IsString()) { | 1110 if (source->IsString()) { |
| (...skipping 14 matching lines...) Expand all Loading... |
| 1157 msg.AppendAddress(shared->address()); | 1125 msg.AppendAddress(shared->address()); |
| 1158 msg.Append(",%s", ComputeMarker(code)); | 1126 msg.Append(",%s", ComputeMarker(code)); |
| 1159 msg.Append('\n'); | 1127 msg.Append('\n'); |
| 1160 msg.WriteToLogFile(); | 1128 msg.WriteToLogFile(); |
| 1161 } | 1129 } |
| 1162 | 1130 |
| 1163 | 1131 |
| 1164 void Logger::CodeCreateEvent(LogEventsAndTags tag, Code* code, int args_count) { | 1132 void Logger::CodeCreateEvent(LogEventsAndTags tag, Code* code, int args_count) { |
| 1165 if (!is_logging_code_events()) return; | 1133 if (!is_logging_code_events()) return; |
| 1166 if (FLAG_ll_prof || Serializer::enabled() || code_event_handler_ != NULL) { | 1134 if (FLAG_ll_prof || Serializer::enabled() || code_event_handler_ != NULL) { |
| 1167 name_buffer_->Reset(); | 1135 InitNameBuffer(tag); |
| 1168 name_buffer_->AppendBytes(kLogEventsNames[tag]); | |
| 1169 name_buffer_->AppendByte(':'); | |
| 1170 name_buffer_->AppendInt(args_count); | 1136 name_buffer_->AppendInt(args_count); |
| 1137 LogRecordedBuffer(code, NULL); |
| 1171 } | 1138 } |
| 1172 if (code_event_handler_ != NULL) { | 1139 |
| 1173 IssueCodeAddedEvent(code, NULL, name_buffer_->get(), name_buffer_->size()); | 1140 if (!FLAG_log_code || !log_->IsEnabled()) return; |
| 1174 } | |
| 1175 if (!log_->IsEnabled()) return; | |
| 1176 if (FLAG_ll_prof) { | |
| 1177 LowLevelCodeCreateEvent(code, name_buffer_->get(), name_buffer_->size()); | |
| 1178 } | |
| 1179 if (Serializer::enabled()) { | |
| 1180 RegisterSnapshotCodeName(code, name_buffer_->get(), name_buffer_->size()); | |
| 1181 } | |
| 1182 if (!FLAG_log_code) return; | |
| 1183 LogMessageBuilder msg(this); | 1141 LogMessageBuilder msg(this); |
| 1184 msg.Append("%s,%s,%d,", | 1142 msg.Append("%s,%s,%d,", |
| 1185 kLogEventsNames[CODE_CREATION_EVENT], | 1143 kLogEventsNames[CODE_CREATION_EVENT], |
| 1186 kLogEventsNames[tag], | 1144 kLogEventsNames[tag], |
| 1187 code->kind()); | 1145 code->kind()); |
| 1188 msg.AppendAddress(code->address()); | 1146 msg.AppendAddress(code->address()); |
| 1189 msg.Append(",%d,\"args_count: %d\"", code->ExecutableSize(), args_count); | 1147 msg.Append(",%d,\"args_count: %d\"", code->ExecutableSize(), args_count); |
| 1190 msg.Append('\n'); | 1148 msg.Append('\n'); |
| 1191 msg.WriteToLogFile(); | 1149 msg.WriteToLogFile(); |
| 1192 } | 1150 } |
| 1193 | 1151 |
| 1194 | 1152 |
| 1195 void Logger::CodeMovingGCEvent() { | 1153 void Logger::CodeMovingGCEvent() { |
| 1196 if (!log_->IsEnabled() || !FLAG_ll_prof) return; | 1154 if (!log_->IsEnabled() || !FLAG_ll_prof) return; |
| 1197 LowLevelLogWriteBytes(&kCodeMovingGCTag, sizeof(kCodeMovingGCTag)); | 1155 LowLevelLogWriteBytes(&kCodeMovingGCTag, sizeof(kCodeMovingGCTag)); |
| 1198 OS::SignalCodeMovingGC(); | 1156 OS::SignalCodeMovingGC(); |
| 1199 } | 1157 } |
| 1200 | 1158 |
| 1201 | 1159 |
| 1202 void Logger::RegExpCodeCreateEvent(Code* code, String* source) { | 1160 void Logger::RegExpCodeCreateEvent(Code* code, String* source) { |
| 1203 if (!is_logging_code_events()) return; | 1161 if (!is_logging_code_events()) return; |
| 1204 if (FLAG_ll_prof || Serializer::enabled() || code_event_handler_ != NULL) { | 1162 if (FLAG_ll_prof || Serializer::enabled() || code_event_handler_ != NULL) { |
| 1205 name_buffer_->Reset(); | 1163 InitNameBuffer(REG_EXP_TAG); |
| 1206 name_buffer_->AppendBytes(kLogEventsNames[REG_EXP_TAG]); | |
| 1207 name_buffer_->AppendByte(':'); | |
| 1208 name_buffer_->AppendString(source); | 1164 name_buffer_->AppendString(source); |
| 1165 LogRecordedBuffer(code, NULL); |
| 1209 } | 1166 } |
| 1210 if (code_event_handler_ != NULL) { | 1167 |
| 1211 IssueCodeAddedEvent(code, NULL, name_buffer_->get(), name_buffer_->size()); | 1168 if (!FLAG_log_code || !log_->IsEnabled()) return; |
| 1212 } | |
| 1213 if (!log_->IsEnabled()) return; | |
| 1214 if (FLAG_ll_prof) { | |
| 1215 LowLevelCodeCreateEvent(code, name_buffer_->get(), name_buffer_->size()); | |
| 1216 } | |
| 1217 if (Serializer::enabled()) { | |
| 1218 RegisterSnapshotCodeName(code, name_buffer_->get(), name_buffer_->size()); | |
| 1219 } | |
| 1220 if (!FLAG_log_code) return; | |
| 1221 LogMessageBuilder msg(this); | 1169 LogMessageBuilder msg(this); |
| 1222 msg.Append("%s,%s,-2,", | 1170 msg.Append("%s,%s,-2,", |
| 1223 kLogEventsNames[CODE_CREATION_EVENT], | 1171 kLogEventsNames[CODE_CREATION_EVENT], |
| 1224 kLogEventsNames[REG_EXP_TAG]); | 1172 kLogEventsNames[REG_EXP_TAG]); |
| 1225 msg.AppendAddress(code->address()); | 1173 msg.AppendAddress(code->address()); |
| 1226 msg.Append(",%d,\"", code->ExecutableSize()); | 1174 msg.Append(",%d,\"", code->ExecutableSize()); |
| 1227 msg.AppendDetailed(source, false); | 1175 msg.AppendDetailed(source, false); |
| 1228 msg.Append('\"'); | 1176 msg.Append('\"'); |
| 1229 msg.Append('\n'); | 1177 msg.Append('\n'); |
| 1230 msg.WriteToLogFile(); | 1178 msg.WriteToLogFile(); |
| (...skipping 653 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1884 profiler_ = NULL; | 1832 profiler_ = NULL; |
| 1885 } | 1833 } |
| 1886 | 1834 |
| 1887 delete ticker_; | 1835 delete ticker_; |
| 1888 ticker_ = NULL; | 1836 ticker_ = NULL; |
| 1889 | 1837 |
| 1890 return log_->Close(); | 1838 return log_->Close(); |
| 1891 } | 1839 } |
| 1892 | 1840 |
| 1893 } } // namespace v8::internal | 1841 } } // namespace v8::internal |
| OLD | NEW |