| OLD | NEW |
| 1 // Copyright 2012 the V8 project authors. All rights reserved. | 1 // Copyright 2012 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 #ifndef V8_LOG_H_ | 5 #ifndef V8_LOG_H_ |
| 6 #define V8_LOG_H_ | 6 #define V8_LOG_H_ |
| 7 | 7 |
| 8 #include <string> | 8 #include <string> |
| 9 | 9 |
| 10 #include "include/v8-sampler.h" |
| 11 |
| 10 #include "src/allocation.h" | 12 #include "src/allocation.h" |
| 11 #include "src/base/platform/elapsed-timer.h" | 13 #include "src/base/platform/elapsed-timer.h" |
| 12 #include "src/base/platform/platform.h" | 14 #include "src/base/platform/platform.h" |
| 13 #include "src/objects.h" | 15 #include "src/objects.h" |
| 14 | 16 |
| 15 namespace v8 { | 17 namespace v8 { |
| 16 | 18 |
| 17 namespace base { | 19 namespace base { |
| 18 class Semaphore; | 20 class Semaphore; |
| 19 } | 21 } |
| (...skipping 122 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 142 // Note that 'NATIVE_' cases for functions and scripts are mapped onto | 144 // Note that 'NATIVE_' cases for functions and scripts are mapped onto |
| 143 // original tags when writing to the log. | 145 // original tags when writing to the log. |
| 144 | 146 |
| 145 | 147 |
| 146 class JitLogger; | 148 class JitLogger; |
| 147 class PerfBasicLogger; | 149 class PerfBasicLogger; |
| 148 class LowLevelLogger; | 150 class LowLevelLogger; |
| 149 class PerfJitLogger; | 151 class PerfJitLogger; |
| 150 class Sampler; | 152 class Sampler; |
| 151 | 153 |
| 154 class StubCodeEventHandler: public v8::CodeEventHandler { |
| 155 public: |
| 156 void Create(const void* from, |
| 157 const int size, |
| 158 const std::string& name) {} |
| 159 void Delete(const void* from) {} |
| 160 void Move(const void* from, const void* to) {} |
| 161 void SharedLibrary(const std::string& library_path, |
| 162 const void* start, |
| 163 const void* end) {} |
| 164 }; |
| 165 |
| 166 |
| 152 class Logger { | 167 class Logger { |
| 153 public: | 168 public: |
| 154 #define DECLARE_ENUM(enum_item, ignore) enum_item, | 169 #define DECLARE_ENUM(enum_item, ignore) enum_item, |
| 155 enum LogEventsAndTags { | 170 enum LogEventsAndTags { |
| 156 LOG_EVENTS_AND_TAGS_LIST(DECLARE_ENUM) | 171 LOG_EVENTS_AND_TAGS_LIST(DECLARE_ENUM) |
| 157 NUMBER_OF_LOG_EVENTS | 172 NUMBER_OF_LOG_EVENTS |
| 158 }; | 173 }; |
| 159 #undef DECLARE_ENUM | 174 #undef DECLARE_ENUM |
| 160 | 175 |
| 161 // Acquires resources for logging if the right flags are set. | 176 // Acquires resources for logging if the right flags are set. |
| 162 bool SetUp(Isolate* isolate); | 177 bool SetUp(Isolate* isolate); |
| 163 | 178 |
| 164 // Sets the current code event handler. | 179 // Sets the current code event handler. |
| 165 void SetCodeEventHandler(uint32_t options, | 180 void SetCodeEventHandler(uint32_t options, |
| 166 JitCodeEventHandler event_handler); | 181 JitCodeEventHandler event_handler); |
| 167 | 182 |
| 183 void SetCodeEventHandler(v8::CodeEventHandler* handler); |
| 184 |
| 168 Sampler* sampler(); | 185 Sampler* sampler(); |
| 186 v8::CodeEventHandler* codeEventHandler(); |
| 169 | 187 |
| 170 // Frees resources acquired in SetUp. | 188 // Frees resources acquired in SetUp. |
| 171 // When a temporary file is used for the log, returns its stream descriptor, | 189 // When a temporary file is used for the log, returns its stream descriptor, |
| 172 // leaving the file open. | 190 // leaving the file open. |
| 173 FILE* TearDown(); | 191 FILE* TearDown(); |
| 174 | 192 |
| 175 // Emits an event with a string value -> (name, value). | 193 // Emits an event with a string value -> (name, value). |
| 176 void StringEvent(const char* name, const char* value); | 194 void StringEvent(const char* name, const char* value); |
| 177 | 195 |
| 178 // Emits an event with an int value -> (name, value). | 196 // Emits an event with an int value -> (name, value). |
| (...skipping 249 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 428 template <StateTag Tag> friend class VMState; | 446 template <StateTag Tag> friend class VMState; |
| 429 friend class LoggerTestHelper; | 447 friend class LoggerTestHelper; |
| 430 | 448 |
| 431 bool is_logging_; | 449 bool is_logging_; |
| 432 Log* log_; | 450 Log* log_; |
| 433 PerfBasicLogger* perf_basic_logger_; | 451 PerfBasicLogger* perf_basic_logger_; |
| 434 PerfJitLogger* perf_jit_logger_; | 452 PerfJitLogger* perf_jit_logger_; |
| 435 LowLevelLogger* ll_logger_; | 453 LowLevelLogger* ll_logger_; |
| 436 JitLogger* jit_logger_; | 454 JitLogger* jit_logger_; |
| 437 List<CodeEventListener*> listeners_; | 455 List<CodeEventListener*> listeners_; |
| 456 CodeEventHandler* code_event_handler_; |
| 438 | 457 |
| 439 // Guards against multiple calls to TearDown() that can happen in some tests. | 458 // Guards against multiple calls to TearDown() that can happen in some tests. |
| 440 // 'true' between SetUp() and TearDown(). | 459 // 'true' between SetUp() and TearDown(). |
| 441 bool is_initialized_; | 460 bool is_initialized_; |
| 442 | 461 |
| 443 base::ElapsedTimer timer_; | 462 base::ElapsedTimer timer_; |
| 444 | 463 |
| 445 friend class CpuProfiler; | 464 friend class CpuProfiler; |
| 446 }; | 465 }; |
| 447 | 466 |
| (...skipping 76 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 524 int length) = 0; | 543 int length) = 0; |
| 525 | 544 |
| 526 NameBuffer* name_buffer_; | 545 NameBuffer* name_buffer_; |
| 527 }; | 546 }; |
| 528 | 547 |
| 529 | 548 |
| 530 } } // namespace v8::internal | 549 } } // namespace v8::internal |
| 531 | 550 |
| 532 | 551 |
| 533 #endif // V8_LOG_H_ | 552 #endif // V8_LOG_H_ |
| OLD | NEW |