OLD | NEW |
1 // Copyright 2011 the V8 project authors. All rights reserved. | 1 // Copyright 2011 the V8 project authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include <stdarg.h> | 5 #include <stdarg.h> |
6 | 6 |
7 #include "src/v8.h" | 7 #include "src/v8.h" |
8 | 8 |
9 #include "src/bootstrapper.h" | 9 #include "src/bootstrapper.h" |
10 #include "src/code-stubs.h" | 10 #include "src/code-stubs.h" |
(...skipping 849 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
860 engaged_(false), | 860 engaged_(false), |
861 running_(false), | 861 running_(false), |
862 paused_(false) { | 862 paused_(false) { |
863 } | 863 } |
864 | 864 |
865 | 865 |
866 void Profiler::Engage() { | 866 void Profiler::Engage() { |
867 if (engaged_) return; | 867 if (engaged_) return; |
868 engaged_ = true; | 868 engaged_ = true; |
869 | 869 |
870 OS::LogSharedLibraryAddresses(isolate_); | 870 std::vector<OS::SharedLibraryAddress> addresses = |
| 871 OS::GetSharedLibraryAddresses(); |
| 872 for (size_t i = 0; i < addresses.size(); ++i) { |
| 873 LOG(isolate_, SharedLibraryEvent( |
| 874 addresses[i].library_path, addresses[i].start, addresses[i].end)); |
| 875 } |
871 | 876 |
872 // Start thread processing the profiler buffer. | 877 // Start thread processing the profiler buffer. |
873 running_ = true; | 878 running_ = true; |
874 Start(); | 879 Start(); |
875 | 880 |
876 // Register to get ticks. | 881 // Register to get ticks. |
877 Logger* logger = isolate_->logger(); | 882 Logger* logger = isolate_->logger(); |
878 logger->ticker_->SetProfiler(this); | 883 logger->ticker_->SetProfiler(this); |
879 | 884 |
880 logger->ProfilerBeginEvent(); | 885 logger->ProfilerBeginEvent(); |
(...skipping 160 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1041 Symbol::cast(key)->Hash()); | 1046 Symbol::cast(key)->Hash()); |
1042 } | 1047 } |
1043 } else if (key->IsUndefined()) { | 1048 } else if (key->IsUndefined()) { |
1044 ApiEvent("api,check-security,undefined\n"); | 1049 ApiEvent("api,check-security,undefined\n"); |
1045 } else { | 1050 } else { |
1046 ApiEvent("api,check-security,['no-name']\n"); | 1051 ApiEvent("api,check-security,['no-name']\n"); |
1047 } | 1052 } |
1048 } | 1053 } |
1049 | 1054 |
1050 | 1055 |
1051 void Logger::SharedLibraryEvent(const char* library_path, | 1056 void Logger::SharedLibraryEvent(const std::string& library_path, |
1052 uintptr_t start, | 1057 uintptr_t start, |
1053 uintptr_t end) { | 1058 uintptr_t end) { |
1054 if (!log_->IsEnabled() || !FLAG_prof) return; | 1059 if (!log_->IsEnabled() || !FLAG_prof) return; |
1055 Log::MessageBuilder msg(log_); | 1060 Log::MessageBuilder msg(log_); |
1056 msg.Append("shared-library,\"%s\",0x%08" V8PRIxPTR ",0x%08" V8PRIxPTR "\n", | 1061 msg.Append("shared-library,\"%s\",0x%08" V8PRIxPTR ",0x%08" V8PRIxPTR "\n", |
1057 library_path, | 1062 library_path.c_str(), |
1058 start, | 1063 start, |
1059 end); | 1064 end); |
1060 msg.WriteToLogFile(); | 1065 msg.WriteToLogFile(); |
1061 } | |
1062 | |
1063 | |
1064 void Logger::SharedLibraryEvent(const wchar_t* library_path, | |
1065 uintptr_t start, | |
1066 uintptr_t end) { | |
1067 if (!log_->IsEnabled() || !FLAG_prof) return; | |
1068 Log::MessageBuilder msg(log_); | |
1069 msg.Append("shared-library,\"%ls\",0x%08" V8PRIxPTR ",0x%08" V8PRIxPTR "\n", | |
1070 library_path, | |
1071 start, | |
1072 end); | |
1073 msg.WriteToLogFile(); | |
1074 } | 1066 } |
1075 | 1067 |
1076 | 1068 |
1077 void Logger::CodeDeoptEvent(Code* code) { | 1069 void Logger::CodeDeoptEvent(Code* code) { |
1078 if (!log_->IsEnabled()) return; | 1070 if (!log_->IsEnabled()) return; |
1079 ASSERT(FLAG_log_internal_timer_events); | 1071 ASSERT(FLAG_log_internal_timer_events); |
1080 Log::MessageBuilder msg(log_); | 1072 Log::MessageBuilder msg(log_); |
1081 int since_epoch = static_cast<int>(timer_.Elapsed().InMicroseconds()); | 1073 int since_epoch = static_cast<int>(timer_.Elapsed().InMicroseconds()); |
1082 msg.Append("code-deopt,%ld,%d\n", since_epoch, code->CodeSize()); | 1074 msg.Append("code-deopt,%ld,%d\n", since_epoch, code->CodeSize()); |
1083 msg.WriteToLogFile(); | 1075 msg.WriteToLogFile(); |
(...skipping 1033 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2117 if (jit_logger_) { | 2109 if (jit_logger_) { |
2118 removeCodeEventListener(jit_logger_); | 2110 removeCodeEventListener(jit_logger_); |
2119 delete jit_logger_; | 2111 delete jit_logger_; |
2120 jit_logger_ = NULL; | 2112 jit_logger_ = NULL; |
2121 } | 2113 } |
2122 | 2114 |
2123 return log_->Close(); | 2115 return log_->Close(); |
2124 } | 2116 } |
2125 | 2117 |
2126 } } // namespace v8::internal | 2118 } } // namespace v8::internal |
OLD | NEW |