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

Side by Side Diff: src/log.cc

Issue 11552033: This patch is the propagation version of https://codereview.chromium.org/10824032 patch (Closed) Base URL: http://v8.googlecode.com/svn/branches/bleeding_edge/
Patch Set: Created 7 years, 11 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
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 451 matching lines...) Expand 10 before | Expand all | Expand 10 after
462 462
463 463
464 Logger::~Logger() { 464 Logger::~Logger() {
465 delete address_to_name_map_; 465 delete address_to_name_map_;
466 delete name_buffer_; 466 delete name_buffer_;
467 delete log_; 467 delete log_;
468 } 468 }
469 469
470 470
471 void Logger::IssueCodeAddedEvent(Code* code, 471 void Logger::IssueCodeAddedEvent(Code* code,
472 Script* script,
472 const char* name, 473 const char* name,
473 size_t name_len) { 474 size_t name_len) {
474 JitCodeEvent event; 475 JitCodeEvent event;
476 memset(&event, 0, sizeof(event));
475 event.type = JitCodeEvent::CODE_ADDED; 477 event.type = JitCodeEvent::CODE_ADDED;
476 event.code_start = code->instruction_start(); 478 event.code_start = code->instruction_start();
477 event.code_len = code->instruction_size(); 479 event.code_len = code->instruction_size();
480 event.user_data = script;
478 event.name.str = name; 481 event.name.str = name;
479 event.name.len = name_len; 482 event.name.len = name_len;
480 483
481 code_event_handler_(&event); 484 code_event_handler_(&event);
482 } 485 }
483 486
484 487
485 void Logger::IssueCodeMovedEvent(Address from, Address to) { 488 void Logger::IssueCodeMovedEvent(Address from, Address to) {
486 Code* from_code = Code::cast(HeapObject::FromAddress(from)); 489 Code* from_code = Code::cast(HeapObject::FromAddress(from));
487 490
(...skipping 18 matching lines...) Expand all
506 Code* from_code = Code::cast(HeapObject::FromAddress(from)); 509 Code* from_code = Code::cast(HeapObject::FromAddress(from));
507 510
508 JitCodeEvent event; 511 JitCodeEvent event;
509 event.type = JitCodeEvent::CODE_REMOVED; 512 event.type = JitCodeEvent::CODE_REMOVED;
510 event.code_start = from_code->instruction_start(); 513 event.code_start = from_code->instruction_start();
511 event.code_len = from_code->instruction_size(); 514 event.code_len = from_code->instruction_size();
512 515
513 code_event_handler_(&event); 516 code_event_handler_(&event);
514 } 517 }
515 518
519 void Logger::IssueAddCodeLinePosInfoEvent(JITCodeLineInfo* line_info,
520 int pc_offset,
521 int position,
522 bool is_statement) {
523 JitCodeEvent event;
524 event.type = JitCodeEvent::CODE_ADD_LINE_POS_INFO;
525
526 event.user_data = line_info;
527 event.line_info.offset = pc_offset;
528 event.line_info.pos = position;
529 event.line_info.is_statement = is_statement;
530
531 code_event_handler_(&event);
532 }
533
534 void Logger::IssueStartCodePosInfoEvent(JITCodeLineInfo* line_info) {
535 JitCodeEvent event;
536 event.type = JitCodeEvent::CODE_START_LINE_INFO_RECORDING;
537 event.user_data = line_info;
538
539 code_event_handler_(&event);
540 }
541
542 void Logger::IssueEndCodePosInfoEvent(Code* code, JITCodeLineInfo* line_info) {
543 JitCodeEvent event;
544 event.type = JitCodeEvent::CODE_END_LINE_INFO_RECORDING;
545
546 if (code != NULL) {
547 event.code_start = code->instruction_start();
548 } else {
549 event.code_start = 0;
550 }
551
552 event.user_data = line_info;
553
554 code_event_handler_(&event);
555 }
516 556
517 #define DECLARE_EVENT(ignore1, name) name, 557 #define DECLARE_EVENT(ignore1, name) name,
518 static const char* const kLogEventsNames[Logger::NUMBER_OF_LOG_EVENTS] = { 558 static const char* const kLogEventsNames[Logger::NUMBER_OF_LOG_EVENTS] = {
519 LOG_EVENTS_AND_TAGS_LIST(DECLARE_EVENT) 559 LOG_EVENTS_AND_TAGS_LIST(DECLARE_EVENT)
520 }; 560 };
521 #undef DECLARE_EVENT 561 #undef DECLARE_EVENT
522 562
523 563
524 void Logger::ProfilerBeginEvent() { 564 void Logger::ProfilerBeginEvent() {
525 if (!log_->IsEnabled()) return; 565 if (!log_->IsEnabled()) return;
(...skipping 364 matching lines...) Expand 10 before | Expand all | Expand 10 after
890 Code* code, 930 Code* code,
891 const char* comment) { 931 const char* comment) {
892 if (!is_logging_code_events()) return; 932 if (!is_logging_code_events()) return;
893 if (FLAG_ll_prof || Serializer::enabled() || code_event_handler_ != NULL) { 933 if (FLAG_ll_prof || Serializer::enabled() || code_event_handler_ != NULL) {
894 name_buffer_->Reset(); 934 name_buffer_->Reset();
895 name_buffer_->AppendBytes(kLogEventsNames[tag]); 935 name_buffer_->AppendBytes(kLogEventsNames[tag]);
896 name_buffer_->AppendByte(':'); 936 name_buffer_->AppendByte(':');
897 name_buffer_->AppendBytes(comment); 937 name_buffer_->AppendBytes(comment);
898 } 938 }
899 if (code_event_handler_ != NULL) { 939 if (code_event_handler_ != NULL) {
900 IssueCodeAddedEvent(code, name_buffer_->get(), name_buffer_->size()); 940 IssueCodeAddedEvent(code, NULL, name_buffer_->get(), name_buffer_->size());
901 } 941 }
902 if (!log_->IsEnabled()) return; 942 if (!log_->IsEnabled()) return;
903 if (FLAG_ll_prof) { 943 if (FLAG_ll_prof) {
904 LowLevelCodeCreateEvent(code, name_buffer_->get(), name_buffer_->size()); 944 LowLevelCodeCreateEvent(code, name_buffer_->get(), name_buffer_->size());
905 } 945 }
906 if (Serializer::enabled()) { 946 if (Serializer::enabled()) {
907 RegisterSnapshotCodeName(code, name_buffer_->get(), name_buffer_->size()); 947 RegisterSnapshotCodeName(code, name_buffer_->get(), name_buffer_->size());
908 } 948 }
909 if (!FLAG_log_code) return; 949 if (!FLAG_log_code) return;
910 LogMessageBuilder msg(this); 950 LogMessageBuilder msg(this);
(...skipping 19 matching lines...) Expand all
930 Code* code, 970 Code* code,
931 String* name) { 971 String* name) {
932 if (!is_logging_code_events()) return; 972 if (!is_logging_code_events()) return;
933 if (FLAG_ll_prof || Serializer::enabled() || code_event_handler_ != NULL) { 973 if (FLAG_ll_prof || Serializer::enabled() || code_event_handler_ != NULL) {
934 name_buffer_->Reset(); 974 name_buffer_->Reset();
935 name_buffer_->AppendBytes(kLogEventsNames[tag]); 975 name_buffer_->AppendBytes(kLogEventsNames[tag]);
936 name_buffer_->AppendByte(':'); 976 name_buffer_->AppendByte(':');
937 name_buffer_->AppendString(name); 977 name_buffer_->AppendString(name);
938 } 978 }
939 if (code_event_handler_ != NULL) { 979 if (code_event_handler_ != NULL) {
940 IssueCodeAddedEvent(code, name_buffer_->get(), name_buffer_->size()); 980 IssueCodeAddedEvent(code, NULL, name_buffer_->get(), name_buffer_->size());
941 } 981 }
942 if (!log_->IsEnabled()) return; 982 if (!log_->IsEnabled()) return;
943 if (FLAG_ll_prof) { 983 if (FLAG_ll_prof) {
944 LowLevelCodeCreateEvent(code, name_buffer_->get(), name_buffer_->size()); 984 LowLevelCodeCreateEvent(code, name_buffer_->get(), name_buffer_->size());
945 } 985 }
946 if (Serializer::enabled()) { 986 if (Serializer::enabled()) {
947 RegisterSnapshotCodeName(code, name_buffer_->get(), name_buffer_->size()); 987 RegisterSnapshotCodeName(code, name_buffer_->get(), name_buffer_->size());
948 } 988 }
949 if (!FLAG_log_code) return; 989 if (!FLAG_log_code) return;
950 LogMessageBuilder msg(this); 990 LogMessageBuilder msg(this);
(...skipping 26 matching lines...) Expand all
977 String* name) { 1017 String* name) {
978 if (!is_logging_code_events()) return; 1018 if (!is_logging_code_events()) return;
979 if (FLAG_ll_prof || Serializer::enabled() || code_event_handler_ != NULL) { 1019 if (FLAG_ll_prof || Serializer::enabled() || code_event_handler_ != NULL) {
980 name_buffer_->Reset(); 1020 name_buffer_->Reset();
981 name_buffer_->AppendBytes(kLogEventsNames[tag]); 1021 name_buffer_->AppendBytes(kLogEventsNames[tag]);
982 name_buffer_->AppendByte(':'); 1022 name_buffer_->AppendByte(':');
983 name_buffer_->AppendBytes(ComputeMarker(code)); 1023 name_buffer_->AppendBytes(ComputeMarker(code));
984 name_buffer_->AppendString(name); 1024 name_buffer_->AppendString(name);
985 } 1025 }
986 if (code_event_handler_ != NULL) { 1026 if (code_event_handler_ != NULL) {
987 IssueCodeAddedEvent(code, name_buffer_->get(), name_buffer_->size()); 1027 IssueCodeAddedEvent(code, shared->script()->IsScript() ?
1028 Script::cast(shared->script()):NULL,
danno 2013/01/10 16:47:33 nit: formatting, please define the Script* before
1029 name_buffer_->get(),
1030 name_buffer_->size());
988 } 1031 }
989 if (!log_->IsEnabled()) return; 1032 if (!log_->IsEnabled()) return;
990 if (FLAG_ll_prof) { 1033 if (FLAG_ll_prof) {
991 LowLevelCodeCreateEvent(code, name_buffer_->get(), name_buffer_->size()); 1034 LowLevelCodeCreateEvent(code, name_buffer_->get(), name_buffer_->size());
992 } 1035 }
993 if (Serializer::enabled()) { 1036 if (Serializer::enabled()) {
994 RegisterSnapshotCodeName(code, name_buffer_->get(), name_buffer_->size()); 1037 RegisterSnapshotCodeName(code, name_buffer_->get(), name_buffer_->size());
995 } 1038 }
996 if (!FLAG_log_code) return; 1039 if (!FLAG_log_code) return;
997 if (code == Isolate::Current()->builtins()->builtin( 1040 if (code == Isolate::Current()->builtins()->builtin(
(...skipping 29 matching lines...) Expand all
1027 name_buffer_->AppendBytes(kLogEventsNames[tag]); 1070 name_buffer_->AppendBytes(kLogEventsNames[tag]);
1028 name_buffer_->AppendByte(':'); 1071 name_buffer_->AppendByte(':');
1029 name_buffer_->AppendBytes(ComputeMarker(code)); 1072 name_buffer_->AppendBytes(ComputeMarker(code));
1030 name_buffer_->AppendString(shared->DebugName()); 1073 name_buffer_->AppendString(shared->DebugName());
1031 name_buffer_->AppendByte(' '); 1074 name_buffer_->AppendByte(' ');
1032 name_buffer_->AppendString(source); 1075 name_buffer_->AppendString(source);
1033 name_buffer_->AppendByte(':'); 1076 name_buffer_->AppendByte(':');
1034 name_buffer_->AppendInt(line); 1077 name_buffer_->AppendInt(line);
1035 } 1078 }
1036 if (code_event_handler_ != NULL) { 1079 if (code_event_handler_ != NULL) {
1037 IssueCodeAddedEvent(code, name_buffer_->get(), name_buffer_->size()); 1080 IssueCodeAddedEvent(code, shared->script()->IsScript() ?
1081 Script::cast(shared->script()):NULL,
danno 2013/01/10 16:47:33 same here.
1082 name_buffer_->get(),
1083 name_buffer_->size());
1038 } 1084 }
1039 if (!log_->IsEnabled()) return; 1085 if (!log_->IsEnabled()) return;
1040 if (FLAG_ll_prof) { 1086 if (FLAG_ll_prof) {
1041 LowLevelCodeCreateEvent(code, name_buffer_->get(), name_buffer_->size()); 1087 LowLevelCodeCreateEvent(code, name_buffer_->get(), name_buffer_->size());
1042 } 1088 }
1043 if (Serializer::enabled()) { 1089 if (Serializer::enabled()) {
1044 RegisterSnapshotCodeName(code, name_buffer_->get(), name_buffer_->size()); 1090 RegisterSnapshotCodeName(code, name_buffer_->get(), name_buffer_->size());
1045 } 1091 }
1046 if (!FLAG_log_code) return; 1092 if (!FLAG_log_code) return;
1047 LogMessageBuilder msg(this); 1093 LogMessageBuilder msg(this);
(...skipping 20 matching lines...) Expand all
1068 1114
1069 void Logger::CodeCreateEvent(LogEventsAndTags tag, Code* code, int args_count) { 1115 void Logger::CodeCreateEvent(LogEventsAndTags tag, Code* code, int args_count) {
1070 if (!is_logging_code_events()) return; 1116 if (!is_logging_code_events()) return;
1071 if (FLAG_ll_prof || Serializer::enabled() || code_event_handler_ != NULL) { 1117 if (FLAG_ll_prof || Serializer::enabled() || code_event_handler_ != NULL) {
1072 name_buffer_->Reset(); 1118 name_buffer_->Reset();
1073 name_buffer_->AppendBytes(kLogEventsNames[tag]); 1119 name_buffer_->AppendBytes(kLogEventsNames[tag]);
1074 name_buffer_->AppendByte(':'); 1120 name_buffer_->AppendByte(':');
1075 name_buffer_->AppendInt(args_count); 1121 name_buffer_->AppendInt(args_count);
1076 } 1122 }
1077 if (code_event_handler_ != NULL) { 1123 if (code_event_handler_ != NULL) {
1078 IssueCodeAddedEvent(code, name_buffer_->get(), name_buffer_->size()); 1124 IssueCodeAddedEvent(code, NULL, name_buffer_->get(), name_buffer_->size());
1079 } 1125 }
1080 if (!log_->IsEnabled()) return; 1126 if (!log_->IsEnabled()) return;
1081 if (FLAG_ll_prof) { 1127 if (FLAG_ll_prof) {
1082 LowLevelCodeCreateEvent(code, name_buffer_->get(), name_buffer_->size()); 1128 LowLevelCodeCreateEvent(code, name_buffer_->get(), name_buffer_->size());
1083 } 1129 }
1084 if (Serializer::enabled()) { 1130 if (Serializer::enabled()) {
1085 RegisterSnapshotCodeName(code, name_buffer_->get(), name_buffer_->size()); 1131 RegisterSnapshotCodeName(code, name_buffer_->get(), name_buffer_->size());
1086 } 1132 }
1087 if (!FLAG_log_code) return; 1133 if (!FLAG_log_code) return;
1088 LogMessageBuilder msg(this); 1134 LogMessageBuilder msg(this);
(...skipping 17 matching lines...) Expand all
1106 1152
1107 void Logger::RegExpCodeCreateEvent(Code* code, String* source) { 1153 void Logger::RegExpCodeCreateEvent(Code* code, String* source) {
1108 if (!is_logging_code_events()) return; 1154 if (!is_logging_code_events()) return;
1109 if (FLAG_ll_prof || Serializer::enabled() || code_event_handler_ != NULL) { 1155 if (FLAG_ll_prof || Serializer::enabled() || code_event_handler_ != NULL) {
1110 name_buffer_->Reset(); 1156 name_buffer_->Reset();
1111 name_buffer_->AppendBytes(kLogEventsNames[REG_EXP_TAG]); 1157 name_buffer_->AppendBytes(kLogEventsNames[REG_EXP_TAG]);
1112 name_buffer_->AppendByte(':'); 1158 name_buffer_->AppendByte(':');
1113 name_buffer_->AppendString(source); 1159 name_buffer_->AppendString(source);
1114 } 1160 }
1115 if (code_event_handler_ != NULL) { 1161 if (code_event_handler_ != NULL) {
1116 IssueCodeAddedEvent(code, name_buffer_->get(), name_buffer_->size()); 1162 IssueCodeAddedEvent(code, NULL, name_buffer_->get(), name_buffer_->size());
1117 } 1163 }
1118 if (!log_->IsEnabled()) return; 1164 if (!log_->IsEnabled()) return;
1119 if (FLAG_ll_prof) { 1165 if (FLAG_ll_prof) {
1120 LowLevelCodeCreateEvent(code, name_buffer_->get(), name_buffer_->size()); 1166 LowLevelCodeCreateEvent(code, name_buffer_->get(), name_buffer_->size());
1121 } 1167 }
1122 if (Serializer::enabled()) { 1168 if (Serializer::enabled()) {
1123 RegisterSnapshotCodeName(code, name_buffer_->get(), name_buffer_->size()); 1169 RegisterSnapshotCodeName(code, name_buffer_->get(), name_buffer_->size());
1124 } 1170 }
1125 if (!FLAG_log_code) return; 1171 if (!FLAG_log_code) return;
1126 LogMessageBuilder msg(this); 1172 LogMessageBuilder msg(this);
(...skipping 23 matching lines...) Expand all
1150 void Logger::CodeDeleteEvent(Address from) { 1196 void Logger::CodeDeleteEvent(Address from) {
1151 if (code_event_handler_ != NULL) IssueCodeRemovedEvent(from); 1197 if (code_event_handler_ != NULL) IssueCodeRemovedEvent(from);
1152 if (!log_->IsEnabled()) return; 1198 if (!log_->IsEnabled()) return;
1153 if (FLAG_ll_prof) LowLevelCodeDeleteEvent(from); 1199 if (FLAG_ll_prof) LowLevelCodeDeleteEvent(from);
1154 if (Serializer::enabled() && address_to_name_map_ != NULL) { 1200 if (Serializer::enabled() && address_to_name_map_ != NULL) {
1155 address_to_name_map_->Remove(from); 1201 address_to_name_map_->Remove(from);
1156 } 1202 }
1157 DeleteEventInternal(CODE_DELETE_EVENT, from); 1203 DeleteEventInternal(CODE_DELETE_EVENT, from);
1158 } 1204 }
1159 1205
1206 void Logger::CodeLinePosInfoAddEvent(JITCodeLineInfo* line_info,
1207 int pc_offset,
1208 int position,
1209 bool is_statement) {
1210 if (code_event_handler_ != NULL)
danno 2013/01/10 16:47:33 style nit: always {} around if statements that don
1211 IssueAddCodeLinePosInfoEvent(line_info, pc_offset, position, is_statement);
1212 }
1213
1214 void Logger::CodeStartLinePosInfoRecordEvent(JITCodeLineInfo* line_info) {
1215 if (code_event_handler_ != NULL)
danno 2013/01/10 16:47:33 style nit: always {} around if statements that don
1216 IssueStartCodePosInfoEvent(line_info);
1217 }
1218
1219 void Logger::CodeEndLinePosInfoRecordEvent(Code* code,
1220 JITCodeLineInfo* line_info) {
1221 if (code_event_handler_ != NULL)
danno 2013/01/10 16:47:33 style nit: always {} around if statements that don
1222 IssueEndCodePosInfoEvent(code, line_info);
danno 2013/01/10 16:47:33 style nit: always {} around if statements that don
1223 }
1160 1224
1161 void Logger::SnapshotPositionEvent(Address addr, int pos) { 1225 void Logger::SnapshotPositionEvent(Address addr, int pos) {
1162 if (!log_->IsEnabled()) return; 1226 if (!log_->IsEnabled()) return;
1163 if (FLAG_ll_prof) LowLevelSnapshotPositionEvent(addr, pos); 1227 if (FLAG_ll_prof) LowLevelSnapshotPositionEvent(addr, pos);
1164 if (Serializer::enabled() && address_to_name_map_ != NULL) { 1228 if (Serializer::enabled() && address_to_name_map_ != NULL) {
1165 const char* code_name = address_to_name_map_->Lookup(addr); 1229 const char* code_name = address_to_name_map_->Lookup(addr);
1166 if (code_name == NULL) return; // Not a code object. 1230 if (code_name == NULL) return; // Not a code object.
1167 LogMessageBuilder msg(this); 1231 LogMessageBuilder msg(this);
1168 msg.Append("%s,%d,\"", kLogEventsNames[SNAPSHOT_CODE_NAME_EVENT], pos); 1232 msg.Append("%s,%d,\"", kLogEventsNames[SNAPSHOT_CODE_NAME_EVENT], pos);
1169 for (const char* p = code_name; *p != '\0'; ++p) { 1233 for (const char* p = code_name; *p != '\0'; ++p) {
(...skipping 659 matching lines...) Expand 10 before | Expand all | Expand 10 after
1829 void SamplerRegistry::RemoveActiveSampler(Sampler* sampler) { 1893 void SamplerRegistry::RemoveActiveSampler(Sampler* sampler) {
1830 ASSERT(sampler->IsActive()); 1894 ASSERT(sampler->IsActive());
1831 ScopedLock lock(active_samplers_mutex); 1895 ScopedLock lock(active_samplers_mutex);
1832 ASSERT(active_samplers_ != NULL); 1896 ASSERT(active_samplers_ != NULL);
1833 bool removed = active_samplers_->RemoveElement(sampler); 1897 bool removed = active_samplers_->RemoveElement(sampler);
1834 ASSERT(removed); 1898 ASSERT(removed);
1835 USE(removed); 1899 USE(removed);
1836 } 1900 }
1837 1901
1838 } } // namespace v8::internal 1902 } } // namespace v8::internal
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698