| Index: src/log.h
|
| diff --git a/src/log.h b/src/log.h
|
| index 03c7b3b6705fd3460d5b12f532e3508a3e0ee17b..8c4a8d86cfbd5cf91576257d2f45592114f5f5b8 100644
|
| --- a/src/log.h
|
| +++ b/src/log.h
|
| @@ -77,6 +77,7 @@ class Semaphore;
|
| class SlidingStateWindow;
|
| class Ticker;
|
|
|
| +
|
| #undef LOG
|
| #define LOG(isolate, Call) \
|
| do { \
|
| @@ -271,7 +272,7 @@ class Logger {
|
| void LogRuntime(Vector<const char> format, JSArray* args);
|
|
|
| bool is_logging() {
|
| - return logging_nesting_ > 0;
|
| + return logging_nesting_ > 0 || CodeAddressCallbackEnabled();
|
| }
|
|
|
| // Pause/Resume collection of profiling data.
|
| @@ -371,6 +372,9 @@ class Logger {
|
| // Returns whether profiler's sampler is active.
|
| bool IsProfilerSamplerActive();
|
|
|
| + // Returns whether symbol callback is enabled.
|
| + bool CodeAddressCallbackEnabled();
|
| +
|
| // The sampler used by the profiler and the sliding state window.
|
| Ticker* ticker_;
|
|
|
| @@ -425,6 +429,32 @@ class Logger {
|
| Address prev_code_;
|
|
|
| friend class CpuProfiler;
|
| +
|
| + friend class CodeAddressNotification;
|
| +
|
| + int notified_reset_;
|
| +};
|
| +
|
| +
|
| +class CodeAddressNotification {
|
| +public:
|
| + // called by host to set callbacks - null turns off callbacks
|
| + static void SetCodeAddressEventCallback(CodeAddressEvent cb,
|
| + bool enumExisting);
|
| +
|
| + // called by v8 when a symbol map is created or changed
|
| + static void WriteSymbolMap(Logger* logger,
|
| + CodeAddressOperation op,
|
| + const void* addr1,
|
| + int len,
|
| + const char* symbol,
|
| + Logger::LogEventsAndTags tag,
|
| + const void* addr2,
|
| + int line);
|
| +
|
| + // called by v8 to determine if callbacks are enabled
|
| + static bool IsEnabled();
|
| +
|
| };
|
|
|
|
|
|
|