| Index: src/log.h
|
| diff --git a/src/log.h b/src/log.h
|
| index 24d83ef1277c13153d2db57b22e0e31322ccd4e4..194ad9d015898f75f1044371a290a1501873fb9d 100644
|
| --- a/src/log.h
|
| +++ b/src/log.h
|
| @@ -70,7 +70,7 @@ namespace internal {
|
| // tick profiler requires code events, so --prof implies --log-code.
|
|
|
| // Forward declarations.
|
| -class CodeEventListener;
|
| +class CodeAddressMap;
|
| class CompilationInfo;
|
| class CpuProfiler;
|
| class Isolate;
|
| @@ -155,6 +155,7 @@ class JitLogger;
|
| class LowLevelLogger;
|
| class Sampler;
|
|
|
| +
|
| class Logger {
|
| public:
|
| #define DECLARE_ENUM(enum_item, ignore) enum_item,
|
| @@ -225,11 +226,6 @@ class Logger {
|
|
|
|
|
| // ==== Events logged by --log-code. ====
|
| - void addCodeEventListener(CodeEventListener* listener);
|
| - void removeCodeEventListener(CodeEventListener* listener);
|
| - bool hasCodeEventListener(CodeEventListener* listener);
|
| -
|
| -
|
| // Emits a code event for a callback function.
|
| void CallbackEvent(Name* name, Address entry_point);
|
| void GetterCallbackEvent(Name* name, Address entry_point);
|
| @@ -273,7 +269,6 @@ class Logger {
|
|
|
| void SharedFunctionInfoMoveEvent(Address from, Address to);
|
|
|
| - void CodeNameEvent(Address addr, int pos, const char* code_name);
|
| void SnapshotPositionEvent(Address addr, int pos);
|
|
|
| // ==== Events logged by --log-gc. ====
|
| @@ -444,98 +439,29 @@ class Logger {
|
| Log* log_;
|
| LowLevelLogger* ll_logger_;
|
| JitLogger* jit_logger_;
|
| - List<CodeEventListener*> listeners_;
|
| + CodeAddressMap* code_address_map_;
|
|
|
| // Guards against multiple calls to TearDown() that can happen in some tests.
|
| // 'true' between SetUp() and TearDown().
|
| bool is_initialized_;
|
|
|
| + // Support for 'incremental addresses' in compressed logs:
|
| + // LogMessageBuilder::AppendAddress(Address addr)
|
| + Address last_address_;
|
| + // Logger::TickEvent(...)
|
| + Address prev_sp_;
|
| + Address prev_function_;
|
| + // Logger::MoveEventInternal(...)
|
| + Address prev_to_;
|
| + // Logger::FunctionCreateEvent(...)
|
| + Address prev_code_;
|
| +
|
| int64_t epoch_;
|
|
|
| friend class CpuProfiler;
|
| };
|
|
|
|
|
| -class CodeEventListener {
|
| - public:
|
| - virtual ~CodeEventListener() {}
|
| -
|
| - virtual void CodeCreateEvent(Logger::LogEventsAndTags tag,
|
| - Code* code,
|
| - const char* comment) = 0;
|
| - virtual void CodeCreateEvent(Logger::LogEventsAndTags tag,
|
| - Code* code,
|
| - Name* name) = 0;
|
| - virtual void CodeCreateEvent(Logger::LogEventsAndTags tag,
|
| - Code* code,
|
| - SharedFunctionInfo* shared,
|
| - CompilationInfo* info,
|
| - Name* name) = 0;
|
| - virtual void CodeCreateEvent(Logger::LogEventsAndTags tag,
|
| - Code* code,
|
| - SharedFunctionInfo* shared,
|
| - CompilationInfo* info,
|
| - Name* source,
|
| - int line) = 0;
|
| - virtual void CodeCreateEvent(Logger::LogEventsAndTags tag,
|
| - Code* code,
|
| - int args_count) = 0;
|
| - virtual void CallbackEvent(Name* name, Address entry_point) = 0;
|
| - virtual void GetterCallbackEvent(Name* name, Address entry_point) = 0;
|
| - virtual void SetterCallbackEvent(Name* name, Address entry_point) = 0;
|
| - virtual void RegExpCodeCreateEvent(Code* code, String* source) = 0;
|
| - virtual void CodeMoveEvent(Address from, Address to) = 0;
|
| - virtual void CodeDeleteEvent(Address from) = 0;
|
| - virtual void SharedFunctionInfoMoveEvent(Address from, Address to) = 0;
|
| - virtual void CodeMovingGCEvent() = 0;
|
| -};
|
| -
|
| -
|
| -class CodeEventLogger : public CodeEventListener {
|
| - public:
|
| - CodeEventLogger();
|
| - virtual ~CodeEventLogger();
|
| -
|
| - virtual void CodeCreateEvent(Logger::LogEventsAndTags tag,
|
| - Code* code,
|
| - const char* comment);
|
| - virtual void CodeCreateEvent(Logger::LogEventsAndTags tag,
|
| - Code* code,
|
| - Name* name);
|
| - virtual void CodeCreateEvent(Logger::LogEventsAndTags tag,
|
| - Code* code,
|
| - int args_count);
|
| - virtual void CodeCreateEvent(Logger::LogEventsAndTags tag,
|
| - Code* code,
|
| - SharedFunctionInfo* shared,
|
| - CompilationInfo* info,
|
| - Name* name);
|
| - virtual void CodeCreateEvent(Logger::LogEventsAndTags tag,
|
| - Code* code,
|
| - SharedFunctionInfo* shared,
|
| - CompilationInfo* info,
|
| - Name* source,
|
| - int line);
|
| - virtual void RegExpCodeCreateEvent(Code* code, String* source);
|
| -
|
| - virtual void CallbackEvent(Name* name, Address entry_point) { }
|
| - virtual void GetterCallbackEvent(Name* name, Address entry_point) { }
|
| - virtual void SetterCallbackEvent(Name* name, Address entry_point) { }
|
| - virtual void SharedFunctionInfoMoveEvent(Address from, Address to) { }
|
| - virtual void CodeMovingGCEvent() { }
|
| -
|
| - private:
|
| - class NameBuffer;
|
| -
|
| - virtual void LogRecordedBuffer(Code* code,
|
| - SharedFunctionInfo* shared,
|
| - const char* name,
|
| - int length) = 0;
|
| -
|
| - NameBuffer* name_buffer_;
|
| -};
|
| -
|
| -
|
| } } // namespace v8::internal
|
|
|
|
|
|
|