Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(76)

Side by Side Diff: src/log.cc

Issue 16901014: CPUProfiler: Simplify logging part of CreateCodeEvent functions. (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: Created 7 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « src/log.h ('k') | src/log-utils.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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
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::AppendCodeCreateHeader(LogMessageBuilder* msg,
907 LogEventsAndTags tag,
908 Code* code,
909 int override_code_kind) {
910 ASSERT(msg);
911 msg->Append("%s,%s,%d,",
912 kLogEventsNames[CODE_CREATION_EVENT],
913 kLogEventsNames[tag],
914 override_code_kind ? override_code_kind : code->kind());
915 msg->AppendAddress(code->address());
916 msg->Append(",%d,", code->ExecutableSize());
917 }
918
919
920 void Logger::AppendSymbolName(LogMessageBuilder* msg,
921 Symbol* symbol) {
922 ASSERT(symbol);
yurys 2013/06/21 09:32:51 No need in this assert.
923 msg->Append("symbol(");
924 if (!symbol->name()->IsUndefined()) {
925 msg->Append("\"");
926 msg->AppendDetailed(String::cast(symbol->name()), false);
927 msg->Append("\" ");
928 }
929 msg->Append("hash %x)", symbol->Hash());
930 }
931
932
906 void Logger::CodeCreateEvent(LogEventsAndTags tag, 933 void Logger::CodeCreateEvent(LogEventsAndTags tag,
907 Code* code, 934 Code* code,
908 const char* comment) { 935 const char* comment) {
909 if (!is_logging_code_events()) return; 936 if (!is_logging_code_events()) return;
910 if (FLAG_ll_prof || Serializer::enabled() || code_event_handler_ != NULL) { 937 if (FLAG_ll_prof || Serializer::enabled() || code_event_handler_ != NULL) {
911 name_buffer_->Reset(); 938 name_buffer_->Reset();
912 name_buffer_->AppendBytes(kLogEventsNames[tag]); 939 name_buffer_->AppendBytes(kLogEventsNames[tag]);
913 name_buffer_->AppendByte(':'); 940 name_buffer_->AppendByte(':');
914 name_buffer_->AppendBytes(comment); 941 name_buffer_->AppendBytes(comment);
915 } 942 }
916 if (code_event_handler_ != NULL) { 943 if (code_event_handler_ != NULL) {
917 IssueCodeAddedEvent(code, NULL, name_buffer_->get(), name_buffer_->size()); 944 IssueCodeAddedEvent(code, NULL, name_buffer_->get(), name_buffer_->size());
918 } 945 }
919 if (!log_->IsEnabled()) return; 946 if (!log_->IsEnabled()) return;
920 if (FLAG_ll_prof) { 947 if (FLAG_ll_prof) {
921 LowLevelCodeCreateEvent(code, name_buffer_->get(), name_buffer_->size()); 948 LowLevelCodeCreateEvent(code, name_buffer_->get(), name_buffer_->size());
922 } 949 }
923 if (Serializer::enabled()) { 950 if (Serializer::enabled()) {
924 RegisterSnapshotCodeName(code, name_buffer_->get(), name_buffer_->size()); 951 RegisterSnapshotCodeName(code, name_buffer_->get(), name_buffer_->size());
925 } 952 }
926 if (!FLAG_log_code) return; 953 if (!FLAG_log_code) return;
927 LogMessageBuilder msg(this); 954 LogMessageBuilder msg(this);
928 msg.Append("%s,%s,%d,", 955 AppendCodeCreateHeader(&msg, tag, code);
929 kLogEventsNames[CODE_CREATION_EVENT], 956 msg.AppendDoubleQuotedString(comment);
930 kLogEventsNames[tag],
931 code->kind());
932 msg.AppendAddress(code->address());
933 msg.Append(",%d,\"", code->ExecutableSize());
934 for (const char* p = comment; *p != '\0'; p++) {
935 if (*p == '"') {
936 msg.Append('\\');
937 }
938 msg.Append(*p);
939 }
940 msg.Append('"');
941 msg.Append('\n'); 957 msg.Append('\n');
942 msg.WriteToLogFile(); 958 msg.WriteToLogFile();
943 } 959 }
944 960
945 961
946 void Logger::CodeCreateEvent(LogEventsAndTags tag, 962 void Logger::CodeCreateEvent(LogEventsAndTags tag,
947 Code* code, 963 Code* code,
948 Name* name) { 964 Name* name) {
949 if (!is_logging_code_events()) return; 965 if (!is_logging_code_events()) return;
950 if (FLAG_ll_prof || Serializer::enabled() || code_event_handler_ != NULL) { 966 if (FLAG_ll_prof || Serializer::enabled() || code_event_handler_ != NULL) {
(...skipping 20 matching lines...) Expand all
971 } 987 }
972 if (!log_->IsEnabled()) return; 988 if (!log_->IsEnabled()) return;
973 if (FLAG_ll_prof) { 989 if (FLAG_ll_prof) {
974 LowLevelCodeCreateEvent(code, name_buffer_->get(), name_buffer_->size()); 990 LowLevelCodeCreateEvent(code, name_buffer_->get(), name_buffer_->size());
975 } 991 }
976 if (Serializer::enabled()) { 992 if (Serializer::enabled()) {
977 RegisterSnapshotCodeName(code, name_buffer_->get(), name_buffer_->size()); 993 RegisterSnapshotCodeName(code, name_buffer_->get(), name_buffer_->size());
978 } 994 }
979 if (!FLAG_log_code) return; 995 if (!FLAG_log_code) return;
980 LogMessageBuilder msg(this); 996 LogMessageBuilder msg(this);
981 msg.Append("%s,%s,%d,", 997 AppendCodeCreateHeader(&msg, tag, code);
982 kLogEventsNames[CODE_CREATION_EVENT],
983 kLogEventsNames[tag],
984 code->kind());
985 msg.AppendAddress(code->address());
986 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);
990 msg.Append('"'); 1001 msg.Append('"');
991 } else { 1002 } else {
992 Symbol* symbol = Symbol::cast(name); 1003 AppendSymbolName(&msg, Symbol::cast(name));
993 msg.Append("symbol(");
994 if (!symbol->name()->IsUndefined()) {
995 msg.Append("\"");
996 msg.AppendDetailed(String::cast(symbol->name()), false);
997 msg.Append("\" ");
998 }
999 msg.Append("hash %x)", symbol->Hash());
1000 } 1004 }
1001 msg.Append('\n'); 1005 msg.Append('\n');
1002 msg.WriteToLogFile(); 1006 msg.WriteToLogFile();
1003 } 1007 }
1004 1008
1005 1009
1006 // ComputeMarker must only be used when SharedFunctionInfo is known. 1010 // ComputeMarker must only be used when SharedFunctionInfo is known.
1007 static const char* ComputeMarker(Code* code) { 1011 static const char* ComputeMarker(Code* code) {
1008 switch (code->kind()) { 1012 switch (code->kind()) {
1009 case Code::FUNCTION: return code->optimizable() ? "~" : ""; 1013 case Code::FUNCTION: return code->optimizable() ? "~" : "";
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after
1053 } 1057 }
1054 if (Serializer::enabled()) { 1058 if (Serializer::enabled()) {
1055 RegisterSnapshotCodeName(code, name_buffer_->get(), name_buffer_->size()); 1059 RegisterSnapshotCodeName(code, name_buffer_->get(), name_buffer_->size());
1056 } 1060 }
1057 if (!FLAG_log_code) return; 1061 if (!FLAG_log_code) return;
1058 if (code == Isolate::Current()->builtins()->builtin( 1062 if (code == Isolate::Current()->builtins()->builtin(
1059 Builtins::kLazyCompile)) 1063 Builtins::kLazyCompile))
1060 return; 1064 return;
1061 1065
1062 LogMessageBuilder msg(this); 1066 LogMessageBuilder msg(this);
1063 msg.Append("%s,%s,%d,", 1067 AppendCodeCreateHeader(&msg, tag, code);
1064 kLogEventsNames[CODE_CREATION_EVENT],
1065 kLogEventsNames[tag],
1066 code->kind());
1067 msg.AppendAddress(code->address());
1068 msg.Append(",%d,", code->ExecutableSize());
1069 if (name->IsString()) { 1068 if (name->IsString()) {
1070 SmartArrayPointer<char> str = 1069 SmartArrayPointer<char> str =
1071 String::cast(name)->ToCString(DISALLOW_NULLS, ROBUST_STRING_TRAVERSAL); 1070 String::cast(name)->ToCString(DISALLOW_NULLS, ROBUST_STRING_TRAVERSAL);
1072 msg.Append("\"%s\"", *str); 1071 msg.Append("\"%s\"", *str);
1073 } else { 1072 } else {
1074 Symbol* symbol = Symbol::cast(name); 1073 AppendSymbolName(&msg, Symbol::cast(name));
1075 msg.Append("symbol(");
1076 if (!symbol->name()->IsUndefined()) {
1077 msg.Append("\"");
1078 msg.AppendDetailed(String::cast(symbol->name()), false);
1079 msg.Append("\" ");
1080 }
1081 msg.Append("hash %x)", symbol->Hash());
1082 } 1074 }
1083 msg.Append(','); 1075 msg.Append(',');
1084 msg.AppendAddress(shared->address()); 1076 msg.AppendAddress(shared->address());
1085 msg.Append(",%s", ComputeMarker(code)); 1077 msg.Append(",%s", ComputeMarker(code));
1086 msg.Append('\n'); 1078 msg.Append('\n');
1087 msg.WriteToLogFile(); 1079 msg.WriteToLogFile();
1088 } 1080 }
1089 1081
1090 1082
1091 // Although, it is possible to extract source and line from 1083 // Although, it is possible to extract source and line from
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
1124 } 1116 }
1125 if (!log_->IsEnabled()) return; 1117 if (!log_->IsEnabled()) return;
1126 if (FLAG_ll_prof) { 1118 if (FLAG_ll_prof) {
1127 LowLevelCodeCreateEvent(code, name_buffer_->get(), name_buffer_->size()); 1119 LowLevelCodeCreateEvent(code, name_buffer_->get(), name_buffer_->size());
1128 } 1120 }
1129 if (Serializer::enabled()) { 1121 if (Serializer::enabled()) {
1130 RegisterSnapshotCodeName(code, name_buffer_->get(), name_buffer_->size()); 1122 RegisterSnapshotCodeName(code, name_buffer_->get(), name_buffer_->size());
1131 } 1123 }
1132 if (!FLAG_log_code) return; 1124 if (!FLAG_log_code) return;
1133 LogMessageBuilder msg(this); 1125 LogMessageBuilder msg(this);
1126 AppendCodeCreateHeader(&msg, tag, code);
1134 SmartArrayPointer<char> name = 1127 SmartArrayPointer<char> name =
1135 shared->DebugName()->ToCString(DISALLOW_NULLS, ROBUST_STRING_TRAVERSAL); 1128 shared->DebugName()->ToCString(DISALLOW_NULLS, ROBUST_STRING_TRAVERSAL);
1136 msg.Append("%s,%s,%d,", 1129 msg.Append("\"%s ", *name);
1137 kLogEventsNames[CODE_CREATION_EVENT],
1138 kLogEventsNames[tag],
1139 code->kind());
1140 msg.AppendAddress(code->address());
1141 msg.Append(",%d,\"%s ", code->ExecutableSize(), *name);
1142 if (source->IsString()) { 1130 if (source->IsString()) {
1143 SmartArrayPointer<char> sourcestr = 1131 SmartArrayPointer<char> sourcestr =
1144 String::cast(source)->ToCString(DISALLOW_NULLS, ROBUST_STRING_TRAVERSAL); 1132 String::cast(source)->ToCString(DISALLOW_NULLS, ROBUST_STRING_TRAVERSAL);
1145 msg.Append("%s", *sourcestr); 1133 msg.Append("%s", *sourcestr);
1146 } else { 1134 } else {
1147 Symbol* symbol = Symbol::cast(source); 1135 AppendSymbolName(&msg, Symbol::cast(source));
1148 msg.Append("symbol(");
1149 if (!symbol->name()->IsUndefined()) {
1150 msg.Append("\"");
1151 msg.AppendDetailed(String::cast(symbol->name()), false);
1152 msg.Append("\" ");
1153 }
1154 msg.Append("hash %x)", symbol->Hash());
1155 } 1136 }
1156 msg.Append(":%d\",", line); 1137 msg.Append(":%d\",", line);
1157 msg.AppendAddress(shared->address()); 1138 msg.AppendAddress(shared->address());
1158 msg.Append(",%s", ComputeMarker(code)); 1139 msg.Append(",%s", ComputeMarker(code));
1159 msg.Append('\n'); 1140 msg.Append('\n');
1160 msg.WriteToLogFile(); 1141 msg.WriteToLogFile();
1161 } 1142 }
1162 1143
1163 1144
1164 void Logger::CodeCreateEvent(LogEventsAndTags tag, Code* code, int args_count) { 1145 void Logger::CodeCreateEvent(LogEventsAndTags tag, Code* code, int args_count) {
1165 if (!is_logging_code_events()) return; 1146 if (!is_logging_code_events()) return;
1166 if (FLAG_ll_prof || Serializer::enabled() || code_event_handler_ != NULL) { 1147 if (FLAG_ll_prof || Serializer::enabled() || code_event_handler_ != NULL) {
1167 name_buffer_->Reset(); 1148 name_buffer_->Reset();
1168 name_buffer_->AppendBytes(kLogEventsNames[tag]); 1149 name_buffer_->AppendBytes(kLogEventsNames[tag]);
1169 name_buffer_->AppendByte(':'); 1150 name_buffer_->AppendByte(':');
1170 name_buffer_->AppendInt(args_count); 1151 name_buffer_->AppendInt(args_count);
1171 } 1152 }
1172 if (code_event_handler_ != NULL) { 1153 if (code_event_handler_ != NULL) {
1173 IssueCodeAddedEvent(code, NULL, name_buffer_->get(), name_buffer_->size()); 1154 IssueCodeAddedEvent(code, NULL, name_buffer_->get(), name_buffer_->size());
1174 } 1155 }
1175 if (!log_->IsEnabled()) return; 1156 if (!log_->IsEnabled()) return;
1176 if (FLAG_ll_prof) { 1157 if (FLAG_ll_prof) {
1177 LowLevelCodeCreateEvent(code, name_buffer_->get(), name_buffer_->size()); 1158 LowLevelCodeCreateEvent(code, name_buffer_->get(), name_buffer_->size());
1178 } 1159 }
1179 if (Serializer::enabled()) { 1160 if (Serializer::enabled()) {
1180 RegisterSnapshotCodeName(code, name_buffer_->get(), name_buffer_->size()); 1161 RegisterSnapshotCodeName(code, name_buffer_->get(), name_buffer_->size());
1181 } 1162 }
1182 if (!FLAG_log_code) return; 1163 if (!FLAG_log_code) return;
1183 LogMessageBuilder msg(this); 1164 LogMessageBuilder msg(this);
1184 msg.Append("%s,%s,%d,", 1165 AppendCodeCreateHeader(&msg, tag, code);
1185 kLogEventsNames[CODE_CREATION_EVENT], 1166 msg.Append("\"args_count: %d\"", args_count);
1186 kLogEventsNames[tag],
1187 code->kind());
1188 msg.AppendAddress(code->address());
1189 msg.Append(",%d,\"args_count: %d\"", code->ExecutableSize(), args_count);
1190 msg.Append('\n'); 1167 msg.Append('\n');
1191 msg.WriteToLogFile(); 1168 msg.WriteToLogFile();
1192 } 1169 }
1193 1170
1194 1171
1195 void Logger::CodeMovingGCEvent() { 1172 void Logger::CodeMovingGCEvent() {
1196 if (!log_->IsEnabled() || !FLAG_ll_prof) return; 1173 if (!log_->IsEnabled() || !FLAG_ll_prof) return;
1197 LowLevelLogWriteBytes(&kCodeMovingGCTag, sizeof(kCodeMovingGCTag)); 1174 LowLevelLogWriteBytes(&kCodeMovingGCTag, sizeof(kCodeMovingGCTag));
1198 OS::SignalCodeMovingGC(); 1175 OS::SignalCodeMovingGC();
1199 } 1176 }
(...skipping 12 matching lines...) Expand all
1212 } 1189 }
1213 if (!log_->IsEnabled()) return; 1190 if (!log_->IsEnabled()) return;
1214 if (FLAG_ll_prof) { 1191 if (FLAG_ll_prof) {
1215 LowLevelCodeCreateEvent(code, name_buffer_->get(), name_buffer_->size()); 1192 LowLevelCodeCreateEvent(code, name_buffer_->get(), name_buffer_->size());
1216 } 1193 }
1217 if (Serializer::enabled()) { 1194 if (Serializer::enabled()) {
1218 RegisterSnapshotCodeName(code, name_buffer_->get(), name_buffer_->size()); 1195 RegisterSnapshotCodeName(code, name_buffer_->get(), name_buffer_->size());
1219 } 1196 }
1220 if (!FLAG_log_code) return; 1197 if (!FLAG_log_code) return;
1221 LogMessageBuilder msg(this); 1198 LogMessageBuilder msg(this);
1222 msg.Append("%s,%s,-2,", 1199 AppendCodeCreateHeader(&msg, REG_EXP_TAG, code, -2);
yurys 2013/06/21 09:32:51 I wonder if we could have a constant with descript
1223 kLogEventsNames[CODE_CREATION_EVENT], 1200 msg.Append('"');
1224 kLogEventsNames[REG_EXP_TAG]);
1225 msg.AppendAddress(code->address());
1226 msg.Append(",%d,\"", code->ExecutableSize());
1227 msg.AppendDetailed(source, false); 1201 msg.AppendDetailed(source, false);
1228 msg.Append('\"'); 1202 msg.Append('"');
1229 msg.Append('\n'); 1203 msg.Append('\n');
1230 msg.WriteToLogFile(); 1204 msg.WriteToLogFile();
1231 } 1205 }
1232 1206
1233 1207
1234 void Logger::CodeMoveEvent(Address from, Address to) { 1208 void Logger::CodeMoveEvent(Address from, Address to) {
1235 if (code_event_handler_ != NULL) IssueCodeMovedEvent(from, to); 1209 if (code_event_handler_ != NULL) IssueCodeMovedEvent(from, to);
1236 if (!log_->IsEnabled()) return; 1210 if (!log_->IsEnabled()) return;
1237 if (FLAG_ll_prof) LowLevelCodeMoveEvent(from, to); 1211 if (FLAG_ll_prof) LowLevelCodeMoveEvent(from, to);
1238 if (Serializer::enabled() && address_to_name_map_ != NULL) { 1212 if (Serializer::enabled() && address_to_name_map_ != NULL) {
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after
1287 } 1261 }
1288 } 1262 }
1289 1263
1290 void Logger::SnapshotPositionEvent(Address addr, int pos) { 1264 void Logger::SnapshotPositionEvent(Address addr, int pos) {
1291 if (!log_->IsEnabled()) return; 1265 if (!log_->IsEnabled()) return;
1292 if (FLAG_ll_prof) LowLevelSnapshotPositionEvent(addr, pos); 1266 if (FLAG_ll_prof) LowLevelSnapshotPositionEvent(addr, pos);
1293 if (Serializer::enabled() && address_to_name_map_ != NULL) { 1267 if (Serializer::enabled() && address_to_name_map_ != NULL) {
1294 const char* code_name = address_to_name_map_->Lookup(addr); 1268 const char* code_name = address_to_name_map_->Lookup(addr);
1295 if (code_name == NULL) return; // Not a code object. 1269 if (code_name == NULL) return; // Not a code object.
1296 LogMessageBuilder msg(this); 1270 LogMessageBuilder msg(this);
1297 msg.Append("%s,%d,\"", kLogEventsNames[SNAPSHOT_CODE_NAME_EVENT], pos); 1271 msg.Append("%s,%d,", kLogEventsNames[SNAPSHOT_CODE_NAME_EVENT], pos);
1298 for (const char* p = code_name; *p != '\0'; ++p) { 1272 msg.AppendDoubleQuotedString(code_name);
1299 if (*p == '"') msg.Append('\\'); 1273 msg.Append("\n");
1300 msg.Append(*p);
1301 }
1302 msg.Append("\"\n");
1303 msg.WriteToLogFile(); 1274 msg.WriteToLogFile();
1304 } 1275 }
1305 if (!FLAG_log_snapshot_positions) return; 1276 if (!FLAG_log_snapshot_positions) return;
1306 LogMessageBuilder msg(this); 1277 LogMessageBuilder msg(this);
1307 msg.Append("%s,", kLogEventsNames[SNAPSHOT_POSITION_EVENT]); 1278 msg.Append("%s,", kLogEventsNames[SNAPSHOT_POSITION_EVENT]);
1308 msg.AppendAddress(addr); 1279 msg.AppendAddress(addr);
1309 msg.Append(",%d", pos); 1280 msg.Append(",%d", pos);
1310 msg.Append('\n'); 1281 msg.Append('\n');
1311 msg.WriteToLogFile(); 1282 msg.WriteToLogFile();
1312 } 1283 }
(...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after
1364 ? JSObject::cast(obj)->class_name() 1335 ? JSObject::cast(obj)->class_name()
1365 : isolate_->heap()->empty_string(); 1336 : isolate_->heap()->empty_string();
1366 msg.Append("suspect-read,"); 1337 msg.Append("suspect-read,");
1367 msg.Append(class_name); 1338 msg.Append(class_name);
1368 msg.Append(','); 1339 msg.Append(',');
1369 if (name->IsString()) { 1340 if (name->IsString()) {
1370 msg.Append('"'); 1341 msg.Append('"');
1371 msg.Append(String::cast(name)); 1342 msg.Append(String::cast(name));
1372 msg.Append('"'); 1343 msg.Append('"');
1373 } else { 1344 } else {
1374 Symbol* symbol = Symbol::cast(name); 1345 AppendSymbolName(&msg, Symbol::cast(name));
1375 msg.Append("symbol(");
1376 if (!symbol->name()->IsUndefined()) {
1377 msg.Append("\"");
1378 msg.AppendDetailed(String::cast(symbol->name()), false);
1379 msg.Append("\" ");
1380 }
1381 msg.Append("hash %x)", symbol->Hash());
1382 } 1346 }
1383 msg.Append('\n'); 1347 msg.Append('\n');
1384 msg.WriteToLogFile(); 1348 msg.WriteToLogFile();
1385 } 1349 }
1386 1350
1387 1351
1388 void Logger::HeapSampleBeginEvent(const char* space, const char* kind) { 1352 void Logger::HeapSampleBeginEvent(const char* space, const char* kind) {
1389 if (!log_->IsEnabled() || !FLAG_log_gc) return; 1353 if (!log_->IsEnabled() || !FLAG_log_gc) return;
1390 LogMessageBuilder msg(this); 1354 LogMessageBuilder msg(this);
1391 // Using non-relative system time in order to be able to synchronize with 1355 // Using non-relative system time in order to be able to synchronize with
(...skipping 492 matching lines...) Expand 10 before | Expand all | Expand 10 after
1884 profiler_ = NULL; 1848 profiler_ = NULL;
1885 } 1849 }
1886 1850
1887 delete ticker_; 1851 delete ticker_;
1888 ticker_ = NULL; 1852 ticker_ = NULL;
1889 1853
1890 return log_->Close(); 1854 return log_->Close();
1891 } 1855 }
1892 1856
1893 } } // namespace v8::internal 1857 } } // namespace v8::internal
OLDNEW
« no previous file with comments | « src/log.h ('k') | src/log-utils.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698