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

Side by Side Diff: src/log.h

Issue 1728593002: [Interpreter] Add support for cpu profiler logging. (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Created 4 years, 10 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
« no previous file with comments | « src/isolate.cc ('k') | src/log.cc » ('j') | src/log.cc » ('J')
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 "src/allocation.h" 10 #include "src/allocation.h"
(...skipping 206 matching lines...) Expand 10 before | Expand all | Expand 10 after
217 void addCodeEventListener(CodeEventListener* listener); 217 void addCodeEventListener(CodeEventListener* listener);
218 void removeCodeEventListener(CodeEventListener* listener); 218 void removeCodeEventListener(CodeEventListener* listener);
219 bool hasCodeEventListener(CodeEventListener* listener); 219 bool hasCodeEventListener(CodeEventListener* listener);
220 220
221 221
222 // Emits a code event for a callback function. 222 // Emits a code event for a callback function.
223 void CallbackEvent(Name* name, Address entry_point); 223 void CallbackEvent(Name* name, Address entry_point);
224 void GetterCallbackEvent(Name* name, Address entry_point); 224 void GetterCallbackEvent(Name* name, Address entry_point);
225 void SetterCallbackEvent(Name* name, Address entry_point); 225 void SetterCallbackEvent(Name* name, Address entry_point);
226 // Emits a code create event. 226 // Emits a code create event.
227 void CodeCreateEvent(LogEventsAndTags tag, 227 void CodeCreateEvent(LogEventsAndTags tag, AbstractCode* code,
228 Code* code, const char* source); 228 const char* source);
229 void CodeCreateEvent(LogEventsAndTags tag, 229 void CodeCreateEvent(LogEventsAndTags tag, AbstractCode* code, Name* name);
230 Code* code, Name* name); 230 void CodeCreateEvent(LogEventsAndTags tag, AbstractCode* code,
231 void CodeCreateEvent(LogEventsAndTags tag, 231 SharedFunctionInfo* shared, CompilationInfo* info,
232 Code* code,
233 SharedFunctionInfo* shared,
234 CompilationInfo* info,
235 Name* name); 232 Name* name);
236 void CodeCreateEvent(LogEventsAndTags tag, 233 void CodeCreateEvent(LogEventsAndTags tag, AbstractCode* code,
237 Code* code, 234 SharedFunctionInfo* shared, CompilationInfo* info,
238 SharedFunctionInfo* shared,
239 CompilationInfo* info,
240 Name* source, int line, int column); 235 Name* source, int line, int column);
241 void CodeCreateEvent(LogEventsAndTags tag, Code* code, int args_count); 236 void CodeCreateEvent(LogEventsAndTags tag, AbstractCode* code,
237 int args_count);
242 // Emits a code deoptimization event. 238 // Emits a code deoptimization event.
243 void CodeDisableOptEvent(Code* code, SharedFunctionInfo* shared); 239 void CodeDisableOptEvent(AbstractCode* code, SharedFunctionInfo* shared);
244 void CodeMovingGCEvent(); 240 void CodeMovingGCEvent();
245 // Emits a code create event for a RegExp. 241 // Emits a code create event for a RegExp.
246 void RegExpCodeCreateEvent(Code* code, String* source); 242 void RegExpCodeCreateEvent(AbstractCode* code, String* source);
247 // Emits a code move event. 243 // Emits a code move event.
248 void CodeMoveEvent(Address from, Address to); 244 void CodeMoveEvent(AbstractCode* from, Address to);
249 // Emits a code delete event. 245 // Emits a code delete event.
250 void CodeDeleteEvent(Address from); 246 void CodeDeleteEvent(AbstractCode* from);
251 // Emits a code line info add event with Postion type. 247 // Emits a code line info add event with Postion type.
252 void CodeLinePosInfoAddPositionEvent(void* jit_handler_data, 248 void CodeLinePosInfoAddPositionEvent(void* jit_handler_data,
253 int pc_offset, 249 int pc_offset,
254 int position); 250 int position);
255 // Emits a code line info add event with StatementPostion type. 251 // Emits a code line info add event with StatementPostion type.
256 void CodeLinePosInfoAddStatementPositionEvent(void* jit_handler_data, 252 void CodeLinePosInfoAddStatementPositionEvent(void* jit_handler_data,
257 int pc_offset, 253 int pc_offset,
258 int position); 254 int position);
259 // Emits a code line info start to record event 255 // Emits a code line info start to record event
260 void CodeStartLinePosInfoRecordEvent(PositionsRecorder* pos_recorder); 256 void CodeStartLinePosInfoRecordEvent(PositionsRecorder* pos_recorder);
261 // Emits a code line info finish record event. 257 // Emits a code line info finish record event.
262 // It's the callee's responsibility to dispose the parameter jit_handler_data. 258 // It's the callee's responsibility to dispose the parameter jit_handler_data.
263 void CodeEndLinePosInfoRecordEvent(Code* code, void* jit_handler_data); 259 void CodeEndLinePosInfoRecordEvent(AbstractCode* code,
260 void* jit_handler_data);
264 261
265 void SharedFunctionInfoMoveEvent(Address from, Address to); 262 void SharedFunctionInfoMoveEvent(Address from, Address to);
266 263
267 void CodeNameEvent(Address addr, int pos, const char* code_name); 264 void CodeNameEvent(Address addr, int pos, const char* code_name);
268 void SnapshotPositionEvent(Address addr, int pos); 265 void SnapshotPositionEvent(Address addr, int pos);
269 266
270 // ==== Events logged by --log-gc. ==== 267 // ==== Events logged by --log-gc. ====
271 // Heap sampling events: start, end, and individual types. 268 // Heap sampling events: start, end, and individual types.
272 void HeapSampleBeginEvent(const char* space, const char* kind); 269 void HeapSampleBeginEvent(const char* space, const char* kind);
273 void HeapSampleEndEvent(const char* space, const char* kind); 270 void HeapSampleEndEvent(const char* space, const char* kind);
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after
309 306
310 bool is_logging_code_events() { 307 bool is_logging_code_events() {
311 return is_logging() || jit_logger_ != NULL; 308 return is_logging() || jit_logger_ != NULL;
312 } 309 }
313 310
314 // Stop collection of profiling data. 311 // Stop collection of profiling data.
315 // When data collection is paused, CPU Tick events are discarded. 312 // When data collection is paused, CPU Tick events are discarded.
316 void StopProfiler(); 313 void StopProfiler();
317 314
318 void LogExistingFunction(Handle<SharedFunctionInfo> shared, 315 void LogExistingFunction(Handle<SharedFunctionInfo> shared,
319 Handle<Code> code); 316 Handle<AbstractCode> code);
320 // Logs all compiled functions found in the heap. 317 // Logs all compiled functions found in the heap.
321 void LogCompiledFunctions(); 318 void LogCompiledFunctions();
322 // Logs all accessor callbacks found in the heap. 319 // Logs all accessor callbacks found in the heap.
323 void LogAccessorCallbacks(); 320 void LogAccessorCallbacks();
324 // Used for logging stubs found in the snapshot. 321 // Used for logging stubs found in the snapshot.
325 void LogCodeObjects(); 322 void LogCodeObjects();
326 323
327 // Converts tag to a corresponding NATIVE_... if the script is native. 324 // Converts tag to a corresponding NATIVE_... if the script is native.
328 INLINE(static LogEventsAndTags ToNativeByScript(LogEventsAndTags, Script*)); 325 INLINE(static LogEventsAndTags ToNativeByScript(LogEventsAndTags, Script*));
329 326
(...skipping 114 matching lines...) Expand 10 before | Expand all | Expand 10 after
444 441
445 private: 442 private:
446 Isolate* isolate_; 443 Isolate* isolate_;
447 }; 444 };
448 445
449 446
450 class CodeEventListener { 447 class CodeEventListener {
451 public: 448 public:
452 virtual ~CodeEventListener() {} 449 virtual ~CodeEventListener() {}
453 450
454 virtual void CodeCreateEvent(Logger::LogEventsAndTags tag, 451 virtual void CodeCreateEvent(Logger::LogEventsAndTags tag, AbstractCode* code,
455 Code* code,
456 const char* comment) = 0; 452 const char* comment) = 0;
457 virtual void CodeCreateEvent(Logger::LogEventsAndTags tag, 453 virtual void CodeCreateEvent(Logger::LogEventsAndTags tag, AbstractCode* code,
458 Code* code,
459 Name* name) = 0; 454 Name* name) = 0;
460 virtual void CodeCreateEvent(Logger::LogEventsAndTags tag, 455 virtual void CodeCreateEvent(Logger::LogEventsAndTags tag, AbstractCode* code,
461 Code* code,
462 SharedFunctionInfo* shared, 456 SharedFunctionInfo* shared,
463 CompilationInfo* info, 457 CompilationInfo* info, Name* name) = 0;
464 Name* name) = 0; 458 virtual void CodeCreateEvent(Logger::LogEventsAndTags tag, AbstractCode* code,
465 virtual void CodeCreateEvent(Logger::LogEventsAndTags tag,
466 Code* code,
467 SharedFunctionInfo* shared, 459 SharedFunctionInfo* shared,
468 CompilationInfo* info, 460 CompilationInfo* info, Name* source, int line,
469 Name* source, 461 int column) = 0;
470 int line, int column) = 0; 462 virtual void CodeCreateEvent(Logger::LogEventsAndTags tag, AbstractCode* code,
471 virtual void CodeCreateEvent(Logger::LogEventsAndTags tag,
472 Code* code,
473 int args_count) = 0; 463 int args_count) = 0;
474 virtual void CallbackEvent(Name* name, Address entry_point) = 0; 464 virtual void CallbackEvent(Name* name, Address entry_point) = 0;
475 virtual void GetterCallbackEvent(Name* name, Address entry_point) = 0; 465 virtual void GetterCallbackEvent(Name* name, Address entry_point) = 0;
476 virtual void SetterCallbackEvent(Name* name, Address entry_point) = 0; 466 virtual void SetterCallbackEvent(Name* name, Address entry_point) = 0;
477 virtual void RegExpCodeCreateEvent(Code* code, String* source) = 0; 467 virtual void RegExpCodeCreateEvent(AbstractCode* code, String* source) = 0;
478 virtual void CodeMoveEvent(Address from, Address to) = 0; 468 virtual void CodeMoveEvent(AbstractCode* from, Address to) = 0;
479 virtual void CodeDeleteEvent(Address from) = 0; 469 virtual void CodeDeleteEvent(AbstractCode* from) = 0;
480 virtual void SharedFunctionInfoMoveEvent(Address from, Address to) = 0; 470 virtual void SharedFunctionInfoMoveEvent(Address from, Address to) = 0;
481 virtual void CodeMovingGCEvent() = 0; 471 virtual void CodeMovingGCEvent() = 0;
482 virtual void CodeDisableOptEvent(Code* code, SharedFunctionInfo* shared) = 0; 472 virtual void CodeDisableOptEvent(AbstractCode* code,
473 SharedFunctionInfo* shared) = 0;
483 }; 474 };
484 475
485 476
486 class CodeEventLogger : public CodeEventListener { 477 class CodeEventLogger : public CodeEventListener {
487 public: 478 public:
488 CodeEventLogger(); 479 CodeEventLogger();
489 virtual ~CodeEventLogger(); 480 ~CodeEventLogger() override;
490 481
491 virtual void CodeCreateEvent(Logger::LogEventsAndTags tag, 482 void CodeCreateEvent(Logger::LogEventsAndTags tag, AbstractCode* code,
492 Code* code, 483 const char* comment) override;
493 const char* comment); 484 void CodeCreateEvent(Logger::LogEventsAndTags tag, AbstractCode* code,
494 virtual void CodeCreateEvent(Logger::LogEventsAndTags tag, 485 Name* name) override;
495 Code* code, 486 void CodeCreateEvent(Logger::LogEventsAndTags tag, AbstractCode* code,
496 Name* name); 487 int args_count) override;
497 virtual void CodeCreateEvent(Logger::LogEventsAndTags tag, 488 void CodeCreateEvent(Logger::LogEventsAndTags tag, AbstractCode* code,
498 Code* code, 489 SharedFunctionInfo* shared, CompilationInfo* info,
499 int args_count); 490 Name* name) override;
500 virtual void CodeCreateEvent(Logger::LogEventsAndTags tag, 491 void CodeCreateEvent(Logger::LogEventsAndTags tag, AbstractCode* code,
501 Code* code, 492 SharedFunctionInfo* shared, CompilationInfo* info,
502 SharedFunctionInfo* shared, 493 Name* source, int line, int column) override;
503 CompilationInfo* info, 494 void RegExpCodeCreateEvent(AbstractCode* code, String* source) override;
504 Name* name);
505 virtual void CodeCreateEvent(Logger::LogEventsAndTags tag,
506 Code* code,
507 SharedFunctionInfo* shared,
508 CompilationInfo* info,
509 Name* source,
510 int line, int column);
511 virtual void RegExpCodeCreateEvent(Code* code, String* source);
512 495
513 virtual void CallbackEvent(Name* name, Address entry_point) { } 496 void CallbackEvent(Name* name, Address entry_point) override {}
514 virtual void GetterCallbackEvent(Name* name, Address entry_point) { } 497 void GetterCallbackEvent(Name* name, Address entry_point) override {}
515 virtual void SetterCallbackEvent(Name* name, Address entry_point) { } 498 void SetterCallbackEvent(Name* name, Address entry_point) override {}
516 virtual void SharedFunctionInfoMoveEvent(Address from, Address to) { } 499 void SharedFunctionInfoMoveEvent(Address from, Address to) override {}
517 virtual void CodeMovingGCEvent() { } 500 void CodeMovingGCEvent() override {}
518 501
519 private: 502 private:
520 class NameBuffer; 503 class NameBuffer;
521 504
522 virtual void LogRecordedBuffer(Code* code, 505 virtual void LogRecordedBuffer(AbstractCode* code, SharedFunctionInfo* shared,
523 SharedFunctionInfo* shared, 506 const char* name, int length) = 0;
524 const char* name,
525 int length) = 0;
526 507
527 NameBuffer* name_buffer_; 508 NameBuffer* name_buffer_;
528 }; 509 };
529 510
530 511
531 } // namespace internal 512 } // namespace internal
532 } // namespace v8 513 } // namespace v8
533 514
534 515
535 #endif // V8_LOG_H_ 516 #endif // V8_LOG_H_
OLDNEW
« no previous file with comments | « src/isolate.cc ('k') | src/log.cc » ('j') | src/log.cc » ('J')

Powered by Google App Engine
This is Rietveld 408576698