OLD | NEW |
1 // Copyright 2006-2008 the V8 project authors. All rights reserved. | 1 // Copyright 2006-2008 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 73 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
84 v8::internal::Logger::Call; \ | 84 v8::internal::Logger::Call; \ |
85 } while (false) | 85 } while (false) |
86 #else | 86 #else |
87 #define LOG(Call) ((void) 0) | 87 #define LOG(Call) ((void) 0) |
88 #endif | 88 #endif |
89 | 89 |
90 | 90 |
91 class VMState BASE_EMBEDDED { | 91 class VMState BASE_EMBEDDED { |
92 #ifdef ENABLE_LOGGING_AND_PROFILING | 92 #ifdef ENABLE_LOGGING_AND_PROFILING |
93 public: | 93 public: |
94 inline explicit VMState(StateTag state); | 94 inline VMState(StateTag state); |
95 inline ~VMState(); | 95 inline ~VMState(); |
96 | 96 |
97 StateTag state() { return state_; } | 97 StateTag state() { return state_; } |
| 98 Address external_callback() { return external_callback_; } |
| 99 void set_external_callback(Address external_callback) { |
| 100 external_callback_ = external_callback; |
| 101 } |
98 | 102 |
99 private: | 103 private: |
100 bool disabled_; | 104 bool disabled_; |
101 StateTag state_; | 105 StateTag state_; |
102 VMState* previous_; | 106 VMState* previous_; |
| 107 Address external_callback_; |
103 #else | 108 #else |
104 public: | 109 public: |
105 explicit VMState(StateTag state) {} | 110 explicit VMState(StateTag state) {} |
106 #endif | 111 #endif |
107 }; | 112 }; |
108 | 113 |
109 | 114 |
110 #define LOG_EVENTS_AND_TAGS_LIST(V) \ | 115 #define LOG_EVENTS_AND_TAGS_LIST(V) \ |
111 V(CODE_CREATION_EVENT, "code-creation", "cc") \ | 116 V(CODE_CREATION_EVENT, "code-creation", "cc") \ |
112 V(CODE_MOVE_EVENT, "code-move", "cm") \ | 117 V(CODE_MOVE_EVENT, "code-move", "cm") \ |
(...skipping 213 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
326 // An instance of helper created if log compression is enabled. | 331 // An instance of helper created if log compression is enabled. |
327 static CompressionHelper* compression_helper_; | 332 static CompressionHelper* compression_helper_; |
328 | 333 |
329 // Internal implementation classes with access to | 334 // Internal implementation classes with access to |
330 // private members. | 335 // private members. |
331 friend class CompressionHelper; | 336 friend class CompressionHelper; |
332 friend class EventLog; | 337 friend class EventLog; |
333 friend class TimeLog; | 338 friend class TimeLog; |
334 friend class Profiler; | 339 friend class Profiler; |
335 friend class SlidingStateWindow; | 340 friend class SlidingStateWindow; |
| 341 friend class StackTracer; |
336 friend class VMState; | 342 friend class VMState; |
337 | 343 |
338 friend class LoggerTestHelper; | 344 friend class LoggerTestHelper; |
339 | 345 |
340 static bool is_logging_; | 346 static bool is_logging_; |
341 #else | 347 #else |
342 static bool is_logging() { return false; } | 348 static bool is_logging() { return false; } |
343 #endif | 349 #endif |
344 }; | 350 }; |
345 | 351 |
346 | 352 |
347 // Class that extracts stack trace, used for profiling. | 353 // Class that extracts stack trace, used for profiling. |
348 class StackTracer : public AllStatic { | 354 class StackTracer : public AllStatic { |
349 public: | 355 public: |
350 static void Trace(TickSample* sample); | 356 static void Trace(TickSample* sample); |
351 }; | 357 }; |
352 | 358 |
353 | 359 |
354 } } // namespace v8::internal | 360 } } // namespace v8::internal |
355 | 361 |
356 #endif // V8_LOG_H_ | 362 #endif // V8_LOG_H_ |
OLD | NEW |