Commit 27642eb0 authored by Jaroslav Sevcik's avatar Jaroslav Sevcik Committed by Commit Bot

[logging] Fix logging of lazy deserialized bytecode handlers.

Bug: v8:7180
Change-Id: If246db425a493e52092cba0fc28b1f02bd8d5db8
Reviewed-on: https://chromium-review.googlesource.com/816835Reviewed-by: 's avatarBenedikt Meurer <bmeurer@chromium.org>
Reviewed-by: 's avatarJakob Gruber <jgruber@chromium.org>
Commit-Queue: Benedikt Meurer <bmeurer@chromium.org>
Cr-Commit-Position: refs/heads/master@{#49957}
parent f9fe6d8d
......@@ -1573,6 +1573,16 @@ void Logger::LogCodeObjects() {
}
}
void Logger::LogBytecodeHandler(interpreter::Bytecode bytecode,
interpreter::OperandScale operand_scale,
Code* code) {
std::string bytecode_name =
interpreter::Bytecodes::ToString(bytecode, operand_scale);
PROFILE(isolate_,
CodeCreateEvent(CodeEventListener::BYTECODE_HANDLER_TAG,
AbstractCode::cast(code), bytecode_name.c_str()));
}
void Logger::LogBytecodeHandlers() {
const interpreter::OperandScale kOperandScales[] = {
#define VALUE(Name, _) interpreter::OperandScale::k##Name,
......@@ -1588,11 +1598,7 @@ void Logger::LogBytecodeHandlers() {
if (interpreter::Bytecodes::BytecodeHasHandler(bytecode, operand_scale)) {
Code* code = interpreter->GetBytecodeHandler(bytecode, operand_scale);
if (isolate_->heap()->IsDeserializeLazyHandler(code)) continue;
std::string bytecode_name =
interpreter::Bytecodes::ToString(bytecode, operand_scale);
PROFILE(isolate_, CodeCreateEvent(
CodeEventListener::BYTECODE_HANDLER_TAG,
AbstractCode::cast(code), bytecode_name.c_str()));
LogBytecodeHandler(bytecode, operand_scale, code);
}
}
}
......
......@@ -258,6 +258,8 @@ class Logger : public CodeEventListener {
void LogCodeObjects();
// Used for logging bytecode handlers found in the snapshot.
void LogBytecodeHandlers();
void LogBytecodeHandler(interpreter::Bytecode bytecode,
interpreter::OperandScale operand_scale, Code* code);
// Logs all Mpas foind in the heap.
void LogMaps();
......
......@@ -139,7 +139,7 @@ Code* Snapshot::DeserializeHandler(Isolate* isolate,
}
if (isolate->logger()->is_logging_code_events() || isolate->is_profiling()) {
isolate->logger()->LogCodeObject(code);
isolate->logger()->LogBytecodeHandler(bytecode, operand_scale, code);
}
return code;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment