Index: src/log.cc |
diff --git a/src/log.cc b/src/log.cc |
index 004e21a650f644cfb9524fc6d2d48b4da7749a95..7825806ecc7f160c643aeb273f4bf21e4740c321 100644 |
--- a/src/log.cc |
+++ b/src/log.cc |
@@ -43,8 +43,6 @@ |
namespace v8 { |
namespace internal { |
-#ifdef ENABLE_LOGGING_AND_PROFILING |
- |
// |
// Sliding state window. Updates counters to keep track of the last |
// window of kBufferSize states. This is useful to track where we |
@@ -554,71 +552,54 @@ void Logger::ProfilerBeginEvent() { |
msg.WriteToLogFile(); |
} |
-#endif // ENABLE_LOGGING_AND_PROFILING |
- |
void Logger::StringEvent(const char* name, const char* value) { |
-#ifdef ENABLE_LOGGING_AND_PROFILING |
if (FLAG_log) UncheckedStringEvent(name, value); |
-#endif |
} |
-#ifdef ENABLE_LOGGING_AND_PROFILING |
void Logger::UncheckedStringEvent(const char* name, const char* value) { |
if (!log_->IsEnabled()) return; |
LogMessageBuilder msg(this); |
msg.Append("%s,\"%s\"\n", name, value); |
msg.WriteToLogFile(); |
} |
-#endif |
void Logger::IntEvent(const char* name, int value) { |
-#ifdef ENABLE_LOGGING_AND_PROFILING |
if (FLAG_log) UncheckedIntEvent(name, value); |
-#endif |
} |
void Logger::IntPtrTEvent(const char* name, intptr_t value) { |
-#ifdef ENABLE_LOGGING_AND_PROFILING |
if (FLAG_log) UncheckedIntPtrTEvent(name, value); |
-#endif |
} |
-#ifdef ENABLE_LOGGING_AND_PROFILING |
void Logger::UncheckedIntEvent(const char* name, int value) { |
if (!log_->IsEnabled()) return; |
LogMessageBuilder msg(this); |
msg.Append("%s,%d\n", name, value); |
msg.WriteToLogFile(); |
} |
-#endif |
-#ifdef ENABLE_LOGGING_AND_PROFILING |
void Logger::UncheckedIntPtrTEvent(const char* name, intptr_t value) { |
if (!log_->IsEnabled()) return; |
LogMessageBuilder msg(this); |
msg.Append("%s,%" V8_PTR_PREFIX "d\n", name, value); |
msg.WriteToLogFile(); |
} |
-#endif |
void Logger::HandleEvent(const char* name, Object** location) { |
-#ifdef ENABLE_LOGGING_AND_PROFILING |
if (!log_->IsEnabled() || !FLAG_log_handles) return; |
LogMessageBuilder msg(this); |
msg.Append("%s,0x%" V8PRIxPTR "\n", name, location); |
msg.WriteToLogFile(); |
-#endif |
} |
-#ifdef ENABLE_LOGGING_AND_PROFILING |
// ApiEvent is private so all the calls come from the Logger class. It is the |
// caller's responsibility to ensure that log is enabled and that |
// FLAG_log_api is true. |
@@ -631,11 +612,9 @@ void Logger::ApiEvent(const char* format, ...) { |
va_end(ap); |
msg.WriteToLogFile(); |
} |
-#endif |
void Logger::ApiNamedSecurityCheck(Object* key) { |
-#ifdef ENABLE_LOGGING_AND_PROFILING |
if (!log_->IsEnabled() || !FLAG_log_api) return; |
if (key->IsString()) { |
SmartPointer<char> str = |
@@ -646,14 +625,12 @@ void Logger::ApiNamedSecurityCheck(Object* key) { |
} else { |
ApiEvent("api,check-security,['no-name']\n"); |
} |
-#endif |
} |
void Logger::SharedLibraryEvent(const char* library_path, |
uintptr_t start, |
uintptr_t end) { |
-#ifdef ENABLE_LOGGING_AND_PROFILING |
if (!log_->IsEnabled() || !FLAG_prof) return; |
LogMessageBuilder msg(this); |
msg.Append("shared-library,\"%s\",0x%08" V8PRIxPTR ",0x%08" V8PRIxPTR "\n", |
@@ -661,14 +638,12 @@ void Logger::SharedLibraryEvent(const char* library_path, |
start, |
end); |
msg.WriteToLogFile(); |
-#endif |
} |
void Logger::SharedLibraryEvent(const wchar_t* library_path, |
uintptr_t start, |
uintptr_t end) { |
-#ifdef ENABLE_LOGGING_AND_PROFILING |
if (!log_->IsEnabled() || !FLAG_prof) return; |
LogMessageBuilder msg(this); |
msg.Append("shared-library,\"%ls\",0x%08" V8PRIxPTR ",0x%08" V8PRIxPTR "\n", |
@@ -676,11 +651,9 @@ void Logger::SharedLibraryEvent(const wchar_t* library_path, |
start, |
end); |
msg.WriteToLogFile(); |
-#endif |
} |
-#ifdef ENABLE_LOGGING_AND_PROFILING |
void Logger::LogRegExpSource(Handle<JSRegExp> regexp) { |
// Prints "/" + re.source + "/" + |
// (re.global?"g":"") + (re.ignorecase?"i":"") + (re.multiline?"m":"") |
@@ -721,23 +694,19 @@ void Logger::LogRegExpSource(Handle<JSRegExp> regexp) { |
msg.WriteToLogFile(); |
} |
-#endif // ENABLE_LOGGING_AND_PROFILING |
void Logger::RegExpCompileEvent(Handle<JSRegExp> regexp, bool in_cache) { |
-#ifdef ENABLE_LOGGING_AND_PROFILING |
if (!log_->IsEnabled() || !FLAG_log_regexp) return; |
LogMessageBuilder msg(this); |
msg.Append("regexp-compile,"); |
LogRegExpSource(regexp); |
msg.Append(in_cache ? ",hit\n" : ",miss\n"); |
msg.WriteToLogFile(); |
-#endif |
} |
void Logger::LogRuntime(Vector<const char> format, JSArray* args) { |
-#ifdef ENABLE_LOGGING_AND_PROFILING |
if (!log_->IsEnabled() || !FLAG_log_runtime) return; |
HandleScope scope; |
LogMessageBuilder msg(this); |
@@ -778,22 +747,18 @@ void Logger::LogRuntime(Vector<const char> format, JSArray* args) { |
} |
msg.Append('\n'); |
msg.WriteToLogFile(); |
-#endif |
} |
void Logger::ApiIndexedSecurityCheck(uint32_t index) { |
-#ifdef ENABLE_LOGGING_AND_PROFILING |
if (!log_->IsEnabled() || !FLAG_log_api) return; |
ApiEvent("api,check-security,%u\n", index); |
-#endif |
} |
void Logger::ApiNamedPropertyAccess(const char* tag, |
JSObject* holder, |
Object* name) { |
-#ifdef ENABLE_LOGGING_AND_PROFILING |
ASSERT(name->IsString()); |
if (!log_->IsEnabled() || !FLAG_log_api) return; |
String* class_name_obj = holder->class_name(); |
@@ -802,58 +767,47 @@ void Logger::ApiNamedPropertyAccess(const char* tag, |
SmartPointer<char> property_name = |
String::cast(name)->ToCString(DISALLOW_NULLS, ROBUST_STRING_TRAVERSAL); |
ApiEvent("api,%s,\"%s\",\"%s\"\n", tag, *class_name, *property_name); |
-#endif |
} |
void Logger::ApiIndexedPropertyAccess(const char* tag, |
JSObject* holder, |
uint32_t index) { |
-#ifdef ENABLE_LOGGING_AND_PROFILING |
if (!log_->IsEnabled() || !FLAG_log_api) return; |
String* class_name_obj = holder->class_name(); |
SmartPointer<char> class_name = |
class_name_obj->ToCString(DISALLOW_NULLS, ROBUST_STRING_TRAVERSAL); |
ApiEvent("api,%s,\"%s\",%u\n", tag, *class_name, index); |
-#endif |
} |
void Logger::ApiObjectAccess(const char* tag, JSObject* object) { |
-#ifdef ENABLE_LOGGING_AND_PROFILING |
if (!log_->IsEnabled() || !FLAG_log_api) return; |
String* class_name_obj = object->class_name(); |
SmartPointer<char> class_name = |
class_name_obj->ToCString(DISALLOW_NULLS, ROBUST_STRING_TRAVERSAL); |
ApiEvent("api,%s,\"%s\"\n", tag, *class_name); |
-#endif |
} |
void Logger::ApiEntryCall(const char* name) { |
-#ifdef ENABLE_LOGGING_AND_PROFILING |
if (!log_->IsEnabled() || !FLAG_log_api) return; |
ApiEvent("api,%s\n", name); |
-#endif |
} |
void Logger::NewEvent(const char* name, void* object, size_t size) { |
-#ifdef ENABLE_LOGGING_AND_PROFILING |
if (!log_->IsEnabled() || !FLAG_log) return; |
LogMessageBuilder msg(this); |
msg.Append("new,%s,0x%" V8PRIxPTR ",%u\n", name, object, |
static_cast<unsigned int>(size)); |
msg.WriteToLogFile(); |
-#endif |
} |
void Logger::DeleteEvent(const char* name, void* object) { |
-#ifdef ENABLE_LOGGING_AND_PROFILING |
if (!log_->IsEnabled() || !FLAG_log) return; |
LogMessageBuilder msg(this); |
msg.Append("delete,%s,0x%" V8PRIxPTR "\n", name, object); |
msg.WriteToLogFile(); |
-#endif |
} |
@@ -866,7 +820,6 @@ void Logger::DeleteEventStatic(const char* name, void* object) { |
LOGGER->DeleteEvent(name, object); |
} |
-#ifdef ENABLE_LOGGING_AND_PROFILING |
void Logger::CallbackEventInternal(const char* prefix, const char* name, |
Address entry_point) { |
if (!log_->IsEnabled() || !FLAG_log_code) return; |
@@ -879,43 +832,35 @@ void Logger::CallbackEventInternal(const char* prefix, const char* name, |
msg.Append('\n'); |
msg.WriteToLogFile(); |
} |
-#endif |
void Logger::CallbackEvent(String* name, Address entry_point) { |
-#ifdef ENABLE_LOGGING_AND_PROFILING |
if (!log_->IsEnabled() || !FLAG_log_code) return; |
SmartPointer<char> str = |
name->ToCString(DISALLOW_NULLS, ROBUST_STRING_TRAVERSAL); |
CallbackEventInternal("", *str, entry_point); |
-#endif |
} |
void Logger::GetterCallbackEvent(String* name, Address entry_point) { |
-#ifdef ENABLE_LOGGING_AND_PROFILING |
if (!log_->IsEnabled() || !FLAG_log_code) return; |
SmartPointer<char> str = |
name->ToCString(DISALLOW_NULLS, ROBUST_STRING_TRAVERSAL); |
CallbackEventInternal("get ", *str, entry_point); |
-#endif |
} |
void Logger::SetterCallbackEvent(String* name, Address entry_point) { |
-#ifdef ENABLE_LOGGING_AND_PROFILING |
if (!log_->IsEnabled() || !FLAG_log_code) return; |
SmartPointer<char> str = |
name->ToCString(DISALLOW_NULLS, ROBUST_STRING_TRAVERSAL); |
CallbackEventInternal("set ", *str, entry_point); |
-#endif |
} |
void Logger::CodeCreateEvent(LogEventsAndTags tag, |
Code* code, |
const char* comment) { |
-#ifdef ENABLE_LOGGING_AND_PROFILING |
if (!log_->IsEnabled()) return; |
if (FLAG_ll_prof || Serializer::enabled()) { |
name_buffer_->Reset(); |
@@ -945,14 +890,12 @@ void Logger::CodeCreateEvent(LogEventsAndTags tag, |
msg.Append('"'); |
msg.Append('\n'); |
msg.WriteToLogFile(); |
-#endif |
} |
void Logger::CodeCreateEvent(LogEventsAndTags tag, |
Code* code, |
String* name) { |
-#ifdef ENABLE_LOGGING_AND_PROFILING |
if (!log_->IsEnabled()) return; |
if (FLAG_ll_prof || Serializer::enabled()) { |
name_buffer_->Reset(); |
@@ -977,11 +920,9 @@ void Logger::CodeCreateEvent(LogEventsAndTags tag, |
msg.Append('"'); |
msg.Append('\n'); |
msg.WriteToLogFile(); |
-#endif |
} |
-#ifdef ENABLE_LOGGING_AND_PROFILING |
// ComputeMarker must only be used when SharedFunctionInfo is known. |
static const char* ComputeMarker(Code* code) { |
switch (code->kind()) { |
@@ -990,14 +931,12 @@ static const char* ComputeMarker(Code* code) { |
default: return ""; |
} |
} |
-#endif |
void Logger::CodeCreateEvent(LogEventsAndTags tag, |
Code* code, |
SharedFunctionInfo* shared, |
String* name) { |
-#ifdef ENABLE_LOGGING_AND_PROFILING |
if (!log_->IsEnabled()) return; |
if (FLAG_ll_prof || Serializer::enabled()) { |
name_buffer_->Reset(); |
@@ -1029,7 +968,6 @@ void Logger::CodeCreateEvent(LogEventsAndTags tag, |
msg.Append(",%s", ComputeMarker(code)); |
msg.Append('\n'); |
msg.WriteToLogFile(); |
-#endif |
} |
@@ -1040,7 +978,6 @@ void Logger::CodeCreateEvent(LogEventsAndTags tag, |
Code* code, |
SharedFunctionInfo* shared, |
String* source, int line) { |
-#ifdef ENABLE_LOGGING_AND_PROFILING |
if (!log_->IsEnabled()) return; |
if (FLAG_ll_prof || Serializer::enabled()) { |
name_buffer_->Reset(); |
@@ -1078,12 +1015,10 @@ void Logger::CodeCreateEvent(LogEventsAndTags tag, |
msg.Append(",%s", ComputeMarker(code)); |
msg.Append('\n'); |
msg.WriteToLogFile(); |
-#endif |
} |
void Logger::CodeCreateEvent(LogEventsAndTags tag, Code* code, int args_count) { |
-#ifdef ENABLE_LOGGING_AND_PROFILING |
if (!log_->IsEnabled()) return; |
if (FLAG_ll_prof || Serializer::enabled()) { |
name_buffer_->Reset(); |
@@ -1106,21 +1041,17 @@ void Logger::CodeCreateEvent(LogEventsAndTags tag, Code* code, int args_count) { |
msg.Append(",%d,\"args_count: %d\"", code->ExecutableSize(), args_count); |
msg.Append('\n'); |
msg.WriteToLogFile(); |
-#endif |
} |
void Logger::CodeMovingGCEvent() { |
-#ifdef ENABLE_LOGGING_AND_PROFILING |
if (!log_->IsEnabled() || !FLAG_ll_prof) return; |
LowLevelLogWriteBytes(&kCodeMovingGCTag, sizeof(kCodeMovingGCTag)); |
OS::SignalCodeMovingGC(); |
-#endif |
} |
void Logger::RegExpCodeCreateEvent(Code* code, String* source) { |
-#ifdef ENABLE_LOGGING_AND_PROFILING |
if (!log_->IsEnabled()) return; |
if (FLAG_ll_prof || Serializer::enabled()) { |
name_buffer_->Reset(); |
@@ -1145,36 +1076,30 @@ void Logger::RegExpCodeCreateEvent(Code* code, String* source) { |
msg.Append('\"'); |
msg.Append('\n'); |
msg.WriteToLogFile(); |
-#endif |
} |
void Logger::CodeMoveEvent(Address from, Address to) { |
-#ifdef ENABLE_LOGGING_AND_PROFILING |
if (!log_->IsEnabled()) return; |
if (FLAG_ll_prof) LowLevelCodeMoveEvent(from, to); |
if (Serializer::enabled() && address_to_name_map_ != NULL) { |
address_to_name_map_->Move(from, to); |
} |
MoveEventInternal(CODE_MOVE_EVENT, from, to); |
-#endif |
} |
void Logger::CodeDeleteEvent(Address from) { |
-#ifdef ENABLE_LOGGING_AND_PROFILING |
if (!log_->IsEnabled()) return; |
if (FLAG_ll_prof) LowLevelCodeDeleteEvent(from); |
if (Serializer::enabled() && address_to_name_map_ != NULL) { |
address_to_name_map_->Remove(from); |
} |
DeleteEventInternal(CODE_DELETE_EVENT, from); |
-#endif |
} |
void Logger::SnapshotPositionEvent(Address addr, int pos) { |
-#ifdef ENABLE_LOGGING_AND_PROFILING |
if (!log_->IsEnabled()) return; |
if (FLAG_ll_prof) LowLevelSnapshotPositionEvent(addr, pos); |
if (Serializer::enabled() && address_to_name_map_ != NULL) { |
@@ -1196,18 +1121,14 @@ void Logger::SnapshotPositionEvent(Address addr, int pos) { |
msg.Append(",%d", pos); |
msg.Append('\n'); |
msg.WriteToLogFile(); |
-#endif |
} |
void Logger::SharedFunctionInfoMoveEvent(Address from, Address to) { |
-#ifdef ENABLE_LOGGING_AND_PROFILING |
MoveEventInternal(SHARED_FUNC_MOVE_EVENT, from, to); |
-#endif |
} |
-#ifdef ENABLE_LOGGING_AND_PROFILING |
void Logger::MoveEventInternal(LogEventsAndTags event, |
Address from, |
Address to) { |
@@ -1220,10 +1141,8 @@ void Logger::MoveEventInternal(LogEventsAndTags event, |
msg.Append('\n'); |
msg.WriteToLogFile(); |
} |
-#endif |
-#ifdef ENABLE_LOGGING_AND_PROFILING |
void Logger::DeleteEventInternal(LogEventsAndTags event, Address from) { |
if (!log_->IsEnabled() || !FLAG_log_code) return; |
LogMessageBuilder msg(this); |
@@ -1232,11 +1151,9 @@ void Logger::DeleteEventInternal(LogEventsAndTags event, Address from) { |
msg.Append('\n'); |
msg.WriteToLogFile(); |
} |
-#endif |
void Logger::ResourceEvent(const char* name, const char* tag) { |
-#ifdef ENABLE_LOGGING_AND_PROFILING |
if (!log_->IsEnabled() || !FLAG_log) return; |
LogMessageBuilder msg(this); |
msg.Append("%s,%s,", name, tag); |
@@ -1249,12 +1166,10 @@ void Logger::ResourceEvent(const char* name, const char* tag) { |
msg.Append('\n'); |
msg.WriteToLogFile(); |
-#endif |
} |
void Logger::SuspectReadEvent(String* name, Object* obj) { |
-#ifdef ENABLE_LOGGING_AND_PROFILING |
if (!log_->IsEnabled() || !FLAG_log_suspect) return; |
LogMessageBuilder msg(this); |
String* class_name = obj->IsJSObject() |
@@ -1268,12 +1183,10 @@ void Logger::SuspectReadEvent(String* name, Object* obj) { |
msg.Append('"'); |
msg.Append('\n'); |
msg.WriteToLogFile(); |
-#endif |
} |
void Logger::HeapSampleBeginEvent(const char* space, const char* kind) { |
-#ifdef ENABLE_LOGGING_AND_PROFILING |
if (!log_->IsEnabled() || !FLAG_log_gc) return; |
LogMessageBuilder msg(this); |
// Using non-relative system time in order to be able to synchronize with |
@@ -1281,42 +1194,34 @@ void Logger::HeapSampleBeginEvent(const char* space, const char* kind) { |
msg.Append("heap-sample-begin,\"%s\",\"%s\",%.0f\n", |
space, kind, OS::TimeCurrentMillis()); |
msg.WriteToLogFile(); |
-#endif |
} |
void Logger::HeapSampleEndEvent(const char* space, const char* kind) { |
-#ifdef ENABLE_LOGGING_AND_PROFILING |
if (!log_->IsEnabled() || !FLAG_log_gc) return; |
LogMessageBuilder msg(this); |
msg.Append("heap-sample-end,\"%s\",\"%s\"\n", space, kind); |
msg.WriteToLogFile(); |
-#endif |
} |
void Logger::HeapSampleItemEvent(const char* type, int number, int bytes) { |
-#ifdef ENABLE_LOGGING_AND_PROFILING |
if (!log_->IsEnabled() || !FLAG_log_gc) return; |
LogMessageBuilder msg(this); |
msg.Append("heap-sample-item,%s,%d,%d\n", type, number, bytes); |
msg.WriteToLogFile(); |
-#endif |
} |
void Logger::DebugTag(const char* call_site_tag) { |
-#ifdef ENABLE_LOGGING_AND_PROFILING |
if (!log_->IsEnabled() || !FLAG_log) return; |
LogMessageBuilder msg(this); |
msg.Append("debug-tag,%s\n", call_site_tag); |
msg.WriteToLogFile(); |
-#endif |
} |
void Logger::DebugEvent(const char* event_type, Vector<uint16_t> parameter) { |
-#ifdef ENABLE_LOGGING_AND_PROFILING |
if (!log_->IsEnabled() || !FLAG_log) return; |
StringBuilder s(parameter.length() + 1); |
for (int i = 0; i < parameter.length(); ++i) { |
@@ -1330,11 +1235,9 @@ void Logger::DebugEvent(const char* event_type, Vector<uint16_t> parameter) { |
parameter_string); |
DeleteArray(parameter_string); |
msg.WriteToLogFile(); |
-#endif |
} |
-#ifdef ENABLE_LOGGING_AND_PROFILING |
void Logger::TickEvent(TickSample* sample, bool overflow) { |
if (!log_->IsEnabled() || !FLAG_prof) return; |
LogMessageBuilder msg(this); |
@@ -1545,7 +1448,6 @@ void Logger::LogCodeObject(Object* object) { |
void Logger::LogCodeInfo() { |
-#ifdef ENABLE_LOGGING_AND_PROFILING |
if (!log_->IsEnabled() || !FLAG_ll_prof) return; |
#if V8_TARGET_ARCH_IA32 |
const char arch[] = "ia32"; |
@@ -1557,7 +1459,6 @@ void Logger::LogCodeInfo() { |
const char arch[] = "unknown"; |
#endif |
LowLevelLogWriteBytes(arch, sizeof(arch)); |
-#endif // ENABLE_LOGGING_AND_PROFILING |
} |
@@ -1710,11 +1611,8 @@ void Logger::LogAccessorCallbacks() { |
} |
} |
-#endif |
- |
bool Logger::Setup() { |
-#ifdef ENABLE_LOGGING_AND_PROFILING |
// Tests and EnsureInitialize() can call this twice in a row. It's harmless. |
if (is_initialized_) return true; |
is_initialized_ = true; |
@@ -1766,39 +1664,26 @@ bool Logger::Setup() { |
} |
return true; |
- |
-#else |
- return false; |
-#endif |
} |
Sampler* Logger::sampler() { |
-#ifdef ENABLE_LOGGING_AND_PROFILING |
return ticker_; |
-#else |
- return NULL; |
-#endif |
} |
void Logger::EnsureTickerStarted() { |
-#ifdef ENABLE_LOGGING_AND_PROFILING |
ASSERT(ticker_ != NULL); |
if (!ticker_->IsActive()) ticker_->Start(); |
-#endif |
} |
void Logger::EnsureTickerStopped() { |
-#ifdef ENABLE_LOGGING_AND_PROFILING |
if (ticker_ != NULL && ticker_->IsActive()) ticker_->Stop(); |
-#endif |
} |
void Logger::TearDown() { |
-#ifdef ENABLE_LOGGING_AND_PROFILING |
if (!is_initialized_) return; |
is_initialized_ = false; |
@@ -1816,12 +1701,10 @@ void Logger::TearDown() { |
ticker_ = NULL; |
log_->Close(); |
-#endif |
} |
void Logger::EnableSlidingStateWindow() { |
-#ifdef ENABLE_LOGGING_AND_PROFILING |
// If the ticker is NULL, Logger::Setup has not been called yet. In |
// that case, we set the sliding_state_window flag so that the |
// sliding window computation will be started when Logger::Setup is |
@@ -1835,7 +1718,6 @@ void Logger::EnableSlidingStateWindow() { |
if (sliding_state_window_ == NULL) { |
sliding_state_window_ = new SlidingStateWindow(Isolate::Current()); |
} |
-#endif |
} |
@@ -1855,10 +1737,8 @@ bool SamplerRegistry::IterateActiveSamplers(VisitSampler func, void* param) { |
static void ComputeCpuProfiling(Sampler* sampler, void* flag_ptr) { |
-#ifdef ENABLE_LOGGING_AND_PROFILING |
bool* flag = reinterpret_cast<bool*>(flag_ptr); |
*flag |= sampler->IsProfiling(); |
-#endif |
} |