Index: src/log.h |
diff --git a/src/log.h b/src/log.h |
index 4fb0e230f0f59d458d910707bebe405736677550..980af1e8fd4723023bdb14d438bbcfedc4057fa2 100644 |
--- a/src/log.h |
+++ b/src/log.h |
@@ -69,11 +69,12 @@ namespace internal { |
// tick profiler requires code events, so --prof implies --log-code. |
// Forward declarations. |
-class Ticker; |
+class HashMap; |
+class LogMessageBuilder; |
class Profiler; |
class Semaphore; |
class SlidingStateWindow; |
-class LogMessageBuilder; |
+class Ticker; |
#undef LOG |
#ifdef ENABLE_LOGGING_AND_PROFILING |
@@ -95,6 +96,7 @@ class LogMessageBuilder; |
V(CODE_MOVING_GC, "code-moving-gc") \ |
V(SHARED_FUNC_MOVE_EVENT, "sfi-move") \ |
V(SNAPSHOT_POSITION_EVENT, "snapshot-pos") \ |
+ V(SNAPSHOT_CODE_NAME_EVENT, "snapshot-code-name") \ |
V(TICK_EVENT, "tick") \ |
V(REPEAT_META_EVENT, "repeat") \ |
V(BUILTIN_TAG, "Builtin") \ |
@@ -300,6 +302,9 @@ class Logger { |
void LogFailure(); |
private: |
+ class NameBuffer; |
+ class NameMap; |
+ |
Logger(); |
~Logger(); |
@@ -326,8 +331,26 @@ class Logger { |
// Emits general information about generated code. |
void LogCodeInfo(); |
- // Handles code creation when low-level profiling is active. |
- void LowLevelCodeCreateEvent(Code* code, LogMessageBuilder* msg); |
+ void RegisterSnapshotCodeName(Code* code, const char* name, int name_size); |
+ |
+ // Low-level logging support. |
+ |
+ void LowLevelCodeCreateEvent(Code* code, const char* name, int name_size); |
+ |
+ void LowLevelCodeMoveEvent(Address from, Address to); |
+ |
+ void LowLevelCodeDeleteEvent(Address from); |
+ |
+ void LowLevelSnapshotPositionEvent(Address addr, int pos); |
+ |
+ void LowLevelLogWriteBytes(const char* bytes, int size); |
+ |
+ template <typename T> |
+ void LowLevelLogWriteStruct(const T& s) { |
+ char tag = T::kTag; |
+ LowLevelLogWriteBytes(reinterpret_cast<const char*>(&tag), sizeof(tag)); |
+ LowLevelLogWriteBytes(reinterpret_cast<const char*>(&s), sizeof(s)); |
+ } |
// Emits a profiler tick event. Used by the profiler thread. |
void TickEvent(TickSample* sample, bool overflow); |
@@ -379,6 +402,10 @@ class Logger { |
Log* log_; |
+ NameBuffer* name_buffer_; |
+ |
+ NameMap* address_to_name_map_; |
+ |
// Guards against multiple calls to TearDown() that can happen in some tests. |
// 'true' between Setup() and TearDown(). |
bool is_initialized_; |