diff options
Diffstat (limited to 'deps/v8/src/log.cc')
-rw-r--r-- | deps/v8/src/log.cc | 47 |
1 files changed, 45 insertions, 2 deletions
diff --git a/deps/v8/src/log.cc b/deps/v8/src/log.cc index 2e7796a7ac..9acb7f7857 100644 --- a/deps/v8/src/log.cc +++ b/deps/v8/src/log.cc @@ -915,8 +915,9 @@ void Logger::HeapSampleJSRetainersEvent( // Event starts with comma, so we don't have it in the format string. static const char* event_text = "heap-js-ret-item,%s"; // We take placeholder strings into account, but it's OK to be conservative. - static const int event_text_len = strlen(event_text); - const int cons_len = strlen(constructor), event_len = strlen(event); + static const int event_text_len = StrLength(event_text); + const int cons_len = StrLength(constructor); + const int event_len = StrLength(event); int pos = 0; // Retainer lists can be long. We may need to split them into multiple events. do { @@ -1120,6 +1121,48 @@ static int EnumerateCompiledFunctions(Handle<SharedFunctionInfo>* sfis) { } +void Logger::LogCodeObject(Object* object) { + if (FLAG_log_code) { + Code* code_object = Code::cast(object); + LogEventsAndTags tag = Logger::STUB_TAG; + const char* description = "Unknown code from the snapshot"; + switch (code_object->kind()) { + case Code::FUNCTION: + return; // We log this later using LogCompiledFunctions. + case Code::STUB: + description = CodeStub::MajorName(code_object->major_key()); + tag = Logger::STUB_TAG; + break; + case Code::BUILTIN: + description = "A builtin from the snapshot"; + tag = Logger::BUILTIN_TAG; + break; + case Code::KEYED_LOAD_IC: + description = "A keyed load IC from the snapshot"; + tag = Logger::KEYED_LOAD_IC_TAG; + break; + case Code::LOAD_IC: + description = "A load IC from the snapshot"; + tag = Logger::LOAD_IC_TAG; + break; + case Code::STORE_IC: + description = "A store IC from the snapshot"; + tag = Logger::STORE_IC_TAG; + break; + case Code::KEYED_STORE_IC: + description = "A keyed store IC from the snapshot"; + tag = Logger::KEYED_STORE_IC_TAG; + break; + case Code::CALL_IC: + description = "A call IC from the snapshot"; + tag = Logger::CALL_IC_TAG; + break; + } + LOG(CodeCreateEvent(tag, code_object, description)); + } +} + + void Logger::LogCompiledFunctions() { HandleScope scope; const int compiled_funcs_count = EnumerateCompiledFunctions(NULL); |