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

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 8 years 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.userdata = 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* lineinfo,
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.userdata = lineinfo;
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* lineinfo) {
535 JitCodeEvent event;
536 event.type = JitCodeEvent::CODE_START_LINE_INFO_RECORDING;
537 event.userdata = lineinfo;
538
539 code_event_handler_(&event);
540 }
541
542 void Logger::IssueEndCodePosInfoEvent(Code* code, void* lineinfostruct) {
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 event.userdata = lineinfostruct;
552
553 code_event_handler_(&event);
554 }
516 555
517 #define DECLARE_EVENT(ignore1, name) name, 556 #define DECLARE_EVENT(ignore1, name) name,
518 static const char* const kLogEventsNames[Logger::NUMBER_OF_LOG_EVENTS] = { 557 static const char* const kLogEventsNames[Logger::NUMBER_OF_LOG_EVENTS] = {
519 LOG_EVENTS_AND_TAGS_LIST(DECLARE_EVENT) 558 LOG_EVENTS_AND_TAGS_LIST(DECLARE_EVENT)
520 }; 559 };
521 #undef DECLARE_EVENT 560 #undef DECLARE_EVENT
522 561
523 562
524 void Logger::ProfilerBeginEvent() { 563 void Logger::ProfilerBeginEvent() {
525 if (!log_->IsEnabled()) return; 564 if (!log_->IsEnabled()) return;
(...skipping 364 matching lines...) Expand 10 before | Expand all | Expand 10 after
890 Code* code, 929 Code* code,
891 const char* comment) { 930 const char* comment) {
892 if (!is_logging_code_events()) return; 931 if (!is_logging_code_events()) return;
893 if (FLAG_ll_prof || Serializer::enabled() || code_event_handler_ != NULL) { 932 if (FLAG_ll_prof || Serializer::enabled() || code_event_handler_ != NULL) {
894 name_buffer_->Reset(); 933 name_buffer_->Reset();
895 name_buffer_->AppendBytes(kLogEventsNames[tag]); 934 name_buffer_->AppendBytes(kLogEventsNames[tag]);
896 name_buffer_->AppendByte(':'); 935 name_buffer_->AppendByte(':');
897 name_buffer_->AppendBytes(comment); 936 name_buffer_->AppendBytes(comment);
898 } 937 }
899 if (code_event_handler_ != NULL) { 938 if (code_event_handler_ != NULL) {
900 IssueCodeAddedEvent(code, name_buffer_->get(), name_buffer_->size()); 939 IssueCodeAddedEvent(code, NULL, name_buffer_->get(), name_buffer_->size());
901 } 940 }
902 if (!log_->IsEnabled()) return; 941 if (!log_->IsEnabled()) return;
903 if (FLAG_ll_prof) { 942 if (FLAG_ll_prof) {
904 LowLevelCodeCreateEvent(code, name_buffer_->get(), name_buffer_->size()); 943 LowLevelCodeCreateEvent(code, name_buffer_->get(), name_buffer_->size());
905 } 944 }
906 if (Serializer::enabled()) { 945 if (Serializer::enabled()) {
907 RegisterSnapshotCodeName(code, name_buffer_->get(), name_buffer_->size()); 946 RegisterSnapshotCodeName(code, name_buffer_->get(), name_buffer_->size());
908 } 947 }
909 if (!FLAG_log_code) return; 948 if (!FLAG_log_code) return;
910 LogMessageBuilder msg(this); 949 LogMessageBuilder msg(this);
(...skipping 19 matching lines...) Expand all
930 Code* code, 969 Code* code,
931 String* name) { 970 String* name) {
932 if (!is_logging_code_events()) return; 971 if (!is_logging_code_events()) return;
933 if (FLAG_ll_prof || Serializer::enabled() || code_event_handler_ != NULL) { 972 if (FLAG_ll_prof || Serializer::enabled() || code_event_handler_ != NULL) {
934 name_buffer_->Reset(); 973 name_buffer_->Reset();
935 name_buffer_->AppendBytes(kLogEventsNames[tag]); 974 name_buffer_->AppendBytes(kLogEventsNames[tag]);
936 name_buffer_->AppendByte(':'); 975 name_buffer_->AppendByte(':');
937 name_buffer_->AppendString(name); 976 name_buffer_->AppendString(name);
938 } 977 }
939 if (code_event_handler_ != NULL) { 978 if (code_event_handler_ != NULL) {
940 IssueCodeAddedEvent(code, name_buffer_->get(), name_buffer_->size()); 979 IssueCodeAddedEvent(code, NULL, name_buffer_->get(), name_buffer_->size());
941 } 980 }
942 if (!log_->IsEnabled()) return; 981 if (!log_->IsEnabled()) return;
943 if (FLAG_ll_prof) { 982 if (FLAG_ll_prof) {
944 LowLevelCodeCreateEvent(code, name_buffer_->get(), name_buffer_->size()); 983 LowLevelCodeCreateEvent(code, name_buffer_->get(), name_buffer_->size());
945 } 984 }
946 if (Serializer::enabled()) { 985 if (Serializer::enabled()) {
947 RegisterSnapshotCodeName(code, name_buffer_->get(), name_buffer_->size()); 986 RegisterSnapshotCodeName(code, name_buffer_->get(), name_buffer_->size());
948 } 987 }
949 if (!FLAG_log_code) return; 988 if (!FLAG_log_code) return;
950 LogMessageBuilder msg(this); 989 LogMessageBuilder msg(this);
(...skipping 26 matching lines...) Expand all
977 String* name) { 1016 String* name) {
978 if (!is_logging_code_events()) return; 1017 if (!is_logging_code_events()) return;
979 if (FLAG_ll_prof || Serializer::enabled() || code_event_handler_ != NULL) { 1018 if (FLAG_ll_prof || Serializer::enabled() || code_event_handler_ != NULL) {
980 name_buffer_->Reset(); 1019 name_buffer_->Reset();
981 name_buffer_->AppendBytes(kLogEventsNames[tag]); 1020 name_buffer_->AppendBytes(kLogEventsNames[tag]);
982 name_buffer_->AppendByte(':'); 1021 name_buffer_->AppendByte(':');
983 name_buffer_->AppendBytes(ComputeMarker(code)); 1022 name_buffer_->AppendBytes(ComputeMarker(code));
984 name_buffer_->AppendString(name); 1023 name_buffer_->AppendString(name);
985 } 1024 }
986 if (code_event_handler_ != NULL) { 1025 if (code_event_handler_ != NULL) {
987 IssueCodeAddedEvent(code, name_buffer_->get(), name_buffer_->size()); 1026 IssueCodeAddedEvent(code, shared->script()->IsScript() ?
1027 Script::cast(shared->script()):NULL,
1028 name_buffer_->get(),
1029 name_buffer_->size());
988 } 1030 }
989 if (!log_->IsEnabled()) return; 1031 if (!log_->IsEnabled()) return;
990 if (FLAG_ll_prof) { 1032 if (FLAG_ll_prof) {
991 LowLevelCodeCreateEvent(code, name_buffer_->get(), name_buffer_->size()); 1033 LowLevelCodeCreateEvent(code, name_buffer_->get(), name_buffer_->size());
992 } 1034 }
993 if (Serializer::enabled()) { 1035 if (Serializer::enabled()) {
994 RegisterSnapshotCodeName(code, name_buffer_->get(), name_buffer_->size()); 1036 RegisterSnapshotCodeName(code, name_buffer_->get(), name_buffer_->size());
995 } 1037 }
996 if (!FLAG_log_code) return; 1038 if (!FLAG_log_code) return;
997 if (code == Isolate::Current()->builtins()->builtin( 1039 if (code == Isolate::Current()->builtins()->builtin(
(...skipping 29 matching lines...) Expand all
1027 name_buffer_->AppendBytes(kLogEventsNames[tag]); 1069 name_buffer_->AppendBytes(kLogEventsNames[tag]);
1028 name_buffer_->AppendByte(':'); 1070 name_buffer_->AppendByte(':');
1029 name_buffer_->AppendBytes(ComputeMarker(code)); 1071 name_buffer_->AppendBytes(ComputeMarker(code));
1030 name_buffer_->AppendString(shared->DebugName()); 1072 name_buffer_->AppendString(shared->DebugName());
1031 name_buffer_->AppendByte(' '); 1073 name_buffer_->AppendByte(' ');
1032 name_buffer_->AppendString(source); 1074 name_buffer_->AppendString(source);
1033 name_buffer_->AppendByte(':'); 1075 name_buffer_->AppendByte(':');
1034 name_buffer_->AppendInt(line); 1076 name_buffer_->AppendInt(line);
1035 } 1077 }
1036 if (code_event_handler_ != NULL) { 1078 if (code_event_handler_ != NULL) {
1037 IssueCodeAddedEvent(code, name_buffer_->get(), name_buffer_->size()); 1079 IssueCodeAddedEvent(code, shared->script()->IsScript() ?
1080 Script::cast(shared->script()):NULL,
1081 name_buffer_->get(),
1082 name_buffer_->size());
1038 } 1083 }
1039 if (!log_->IsEnabled()) return; 1084 if (!log_->IsEnabled()) return;
1040 if (FLAG_ll_prof) { 1085 if (FLAG_ll_prof) {
1041 LowLevelCodeCreateEvent(code, name_buffer_->get(), name_buffer_->size()); 1086 LowLevelCodeCreateEvent(code, name_buffer_->get(), name_buffer_->size());
1042 } 1087 }
1043 if (Serializer::enabled()) { 1088 if (Serializer::enabled()) {
1044 RegisterSnapshotCodeName(code, name_buffer_->get(), name_buffer_->size()); 1089 RegisterSnapshotCodeName(code, name_buffer_->get(), name_buffer_->size());
1045 } 1090 }
1046 if (!FLAG_log_code) return; 1091 if (!FLAG_log_code) return;
1047 LogMessageBuilder msg(this); 1092 LogMessageBuilder msg(this);
(...skipping 20 matching lines...) Expand all
1068 1113
1069 void Logger::CodeCreateEvent(LogEventsAndTags tag, Code* code, int args_count) { 1114 void Logger::CodeCreateEvent(LogEventsAndTags tag, Code* code, int args_count) {
1070 if (!is_logging_code_events()) return; 1115 if (!is_logging_code_events()) return;
1071 if (FLAG_ll_prof || Serializer::enabled() || code_event_handler_ != NULL) { 1116 if (FLAG_ll_prof || Serializer::enabled() || code_event_handler_ != NULL) {
1072 name_buffer_->Reset(); 1117 name_buffer_->Reset();
1073 name_buffer_->AppendBytes(kLogEventsNames[tag]); 1118 name_buffer_->AppendBytes(kLogEventsNames[tag]);
1074 name_buffer_->AppendByte(':'); 1119 name_buffer_->AppendByte(':');
1075 name_buffer_->AppendInt(args_count); 1120 name_buffer_->AppendInt(args_count);
1076 } 1121 }
1077 if (code_event_handler_ != NULL) { 1122 if (code_event_handler_ != NULL) {
1078 IssueCodeAddedEvent(code, name_buffer_->get(), name_buffer_->size()); 1123 IssueCodeAddedEvent(code, NULL, name_buffer_->get(), name_buffer_->size());
1079 } 1124 }
1080 if (!log_->IsEnabled()) return; 1125 if (!log_->IsEnabled()) return;
1081 if (FLAG_ll_prof) { 1126 if (FLAG_ll_prof) {
1082 LowLevelCodeCreateEvent(code, name_buffer_->get(), name_buffer_->size()); 1127 LowLevelCodeCreateEvent(code, name_buffer_->get(), name_buffer_->size());
1083 } 1128 }
1084 if (Serializer::enabled()) { 1129 if (Serializer::enabled()) {
1085 RegisterSnapshotCodeName(code, name_buffer_->get(), name_buffer_->size()); 1130 RegisterSnapshotCodeName(code, name_buffer_->get(), name_buffer_->size());
1086 } 1131 }
1087 if (!FLAG_log_code) return; 1132 if (!FLAG_log_code) return;
1088 LogMessageBuilder msg(this); 1133 LogMessageBuilder msg(this);
(...skipping 17 matching lines...) Expand all
1106 1151
1107 void Logger::RegExpCodeCreateEvent(Code* code, String* source) { 1152 void Logger::RegExpCodeCreateEvent(Code* code, String* source) {
1108 if (!is_logging_code_events()) return; 1153 if (!is_logging_code_events()) return;
1109 if (FLAG_ll_prof || Serializer::enabled() || code_event_handler_ != NULL) { 1154 if (FLAG_ll_prof || Serializer::enabled() || code_event_handler_ != NULL) {
1110 name_buffer_->Reset(); 1155 name_buffer_->Reset();
1111 name_buffer_->AppendBytes(kLogEventsNames[REG_EXP_TAG]); 1156 name_buffer_->AppendBytes(kLogEventsNames[REG_EXP_TAG]);
1112 name_buffer_->AppendByte(':'); 1157 name_buffer_->AppendByte(':');
1113 name_buffer_->AppendString(source); 1158 name_buffer_->AppendString(source);
1114 } 1159 }
1115 if (code_event_handler_ != NULL) { 1160 if (code_event_handler_ != NULL) {
1116 IssueCodeAddedEvent(code, name_buffer_->get(), name_buffer_->size()); 1161 IssueCodeAddedEvent(code, NULL, name_buffer_->get(), name_buffer_->size());
1117 } 1162 }
1118 if (!log_->IsEnabled()) return; 1163 if (!log_->IsEnabled()) return;
1119 if (FLAG_ll_prof) { 1164 if (FLAG_ll_prof) {
1120 LowLevelCodeCreateEvent(code, name_buffer_->get(), name_buffer_->size()); 1165 LowLevelCodeCreateEvent(code, name_buffer_->get(), name_buffer_->size());
1121 } 1166 }
1122 if (Serializer::enabled()) { 1167 if (Serializer::enabled()) {
1123 RegisterSnapshotCodeName(code, name_buffer_->get(), name_buffer_->size()); 1168 RegisterSnapshotCodeName(code, name_buffer_->get(), name_buffer_->size());
1124 } 1169 }
1125 if (!FLAG_log_code) return; 1170 if (!FLAG_log_code) return;
1126 LogMessageBuilder msg(this); 1171 LogMessageBuilder msg(this);
(...skipping 23 matching lines...) Expand all
1150 void Logger::CodeDeleteEvent(Address from) { 1195 void Logger::CodeDeleteEvent(Address from) {
1151 if (code_event_handler_ != NULL) IssueCodeRemovedEvent(from); 1196 if (code_event_handler_ != NULL) IssueCodeRemovedEvent(from);
1152 if (!log_->IsEnabled()) return; 1197 if (!log_->IsEnabled()) return;
1153 if (FLAG_ll_prof) LowLevelCodeDeleteEvent(from); 1198 if (FLAG_ll_prof) LowLevelCodeDeleteEvent(from);
1154 if (Serializer::enabled() && address_to_name_map_ != NULL) { 1199 if (Serializer::enabled() && address_to_name_map_ != NULL) {
1155 address_to_name_map_->Remove(from); 1200 address_to_name_map_->Remove(from);
1156 } 1201 }
1157 DeleteEventInternal(CODE_DELETE_EVENT, from); 1202 DeleteEventInternal(CODE_DELETE_EVENT, from);
1158 } 1203 }
1159 1204
1205 void Logger::CodeLinePosInfoAddEvent(JITCodeLineInfo* lineinfo,
1206 int pc_offset,
1207 int position,
1208 bool is_statement) {
1209 if (code_event_handler_ != NULL)
1210 IssueAddCodeLinePosInfoEvent(lineinfo, pc_offset, position, is_statement);
1211 }
1212
1213 void Logger::CodeStartLinePosInfoRecordEvent(JITCodeLineInfo* lineinfo) {
1214 if (code_event_handler_ != NULL)
1215 IssueStartCodePosInfoEvent(lineinfo);
1216 }
1217
1218 void Logger::CodeEndLinePosInfoRecordEvent(Code* code, void* lineinfostruct) {
1219 if (code_event_handler_ != NULL)
1220 IssueEndCodePosInfoEvent(code, lineinfostruct);
1221 }
1160 1222
1161 void Logger::SnapshotPositionEvent(Address addr, int pos) { 1223 void Logger::SnapshotPositionEvent(Address addr, int pos) {
1162 if (!log_->IsEnabled()) return; 1224 if (!log_->IsEnabled()) return;
1163 if (FLAG_ll_prof) LowLevelSnapshotPositionEvent(addr, pos); 1225 if (FLAG_ll_prof) LowLevelSnapshotPositionEvent(addr, pos);
1164 if (Serializer::enabled() && address_to_name_map_ != NULL) { 1226 if (Serializer::enabled() && address_to_name_map_ != NULL) {
1165 const char* code_name = address_to_name_map_->Lookup(addr); 1227 const char* code_name = address_to_name_map_->Lookup(addr);
1166 if (code_name == NULL) return; // Not a code object. 1228 if (code_name == NULL) return; // Not a code object.
1167 LogMessageBuilder msg(this); 1229 LogMessageBuilder msg(this);
1168 msg.Append("%s,%d,\"", kLogEventsNames[SNAPSHOT_CODE_NAME_EVENT], pos); 1230 msg.Append("%s,%d,\"", kLogEventsNames[SNAPSHOT_CODE_NAME_EVENT], pos);
1169 for (const char* p = code_name; *p != '\0'; ++p) { 1231 for (const char* p = code_name; *p != '\0'; ++p) {
(...skipping 658 matching lines...) Expand 10 before | Expand all | Expand 10 after
1828 void SamplerRegistry::RemoveActiveSampler(Sampler* sampler) { 1890 void SamplerRegistry::RemoveActiveSampler(Sampler* sampler) {
1829 ASSERT(sampler->IsActive()); 1891 ASSERT(sampler->IsActive());
1830 ScopedLock lock(active_samplers_mutex); 1892 ScopedLock lock(active_samplers_mutex);
1831 ASSERT(active_samplers_ != NULL); 1893 ASSERT(active_samplers_ != NULL);
1832 bool removed = active_samplers_->RemoveElement(sampler); 1894 bool removed = active_samplers_->RemoveElement(sampler);
1833 ASSERT(removed); 1895 ASSERT(removed);
1834 USE(removed); 1896 USE(removed);
1835 } 1897 }
1836 1898
1837 } } // namespace v8::internal 1899 } } // namespace v8::internal
OLDNEW
« src/log.h ('K') | « src/log.h ('k') | src/x64/lithium-codegen-x64.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698