| Index: src/log.cc
|
| diff --git a/src/log.cc b/src/log.cc
|
| index 3e7677edf1955400cae41889f69e06544b8e7301..5d4481f163d258cf2567ecf97ba97131557996d6 100644
|
| --- a/src/log.cc
|
| +++ b/src/log.cc
|
| @@ -7,6 +7,7 @@
|
| #include <cstdarg>
|
| #include <sstream>
|
|
|
| +#include "include/v8-profiler.h"
|
| #include "src/bailout-reason.h"
|
| #include "src/base/platform/platform.h"
|
| #include "src/bootstrapper.h"
|
| @@ -23,6 +24,7 @@
|
| #include "src/perf-jit.h"
|
| #include "src/profiler/cpu-profiler-inl.h"
|
| #include "src/profiler/profiler-listener.h"
|
| +#include "src/profiler/tick-sample.h"
|
| #include "src/runtime-profiler.h"
|
| #include "src/string-stream.h"
|
| #include "src/vm-state-inl.h"
|
| @@ -645,23 +647,24 @@ class Ticker: public sampler::Sampler {
|
|
|
| void SampleStack(const v8::RegisterState& state) override {
|
| v8::Isolate* v8_isolate = isolate();
|
| - Isolate* isolate = reinterpret_cast<Isolate*>(v8_isolate);
|
| + Isolate* i_isolate = reinterpret_cast<Isolate*>(v8_isolate);
|
| #if defined(USE_SIMULATOR)
|
| - if (!SimulatorHelper::FillRegisters(isolate,
|
| + if (!SimulatorHelper::FillRegisters(i_isolate,
|
| const_cast<v8::RegisterState*>(&state)))
|
| return;
|
| #endif
|
| - TickSample* sample = isolate->cpu_profiler()->StartTickSample();
|
| + TickSample* sample = i_isolate->cpu_profiler()->StartTickSample();
|
| TickSample sample_obj;
|
| if (sample == NULL) sample = &sample_obj;
|
| - sample->Init(isolate, state, TickSample::kIncludeCEntryFrame, true);
|
| - if (is_counting_samples_ && !sample->timestamp.IsNull()) {
|
| + sample->Init(v8_isolate, state, TickSample::kIncludeCEntryFrame, true);
|
| + if (sample->pc == nullptr) return;
|
| + if (is_counting_samples_) {
|
| if (sample->state == JS) ++js_sample_count_;
|
| if (sample->state == EXTERNAL) ++external_sample_count_;
|
| }
|
| if (profiler_) profiler_->Insert(sample);
|
| if (sample != &sample_obj) {
|
| - isolate->cpu_profiler()->FinishTickSample();
|
| + i_isolate->cpu_profiler()->FinishTickSample();
|
| }
|
| }
|
|
|
| @@ -1383,14 +1386,15 @@ void Logger::TickEvent(TickSample* sample, bool overflow) {
|
| }
|
| Log::MessageBuilder msg(log_);
|
| msg.Append("%s,", kLogEventsNames[CodeEventListener::TICK_EVENT]);
|
| - msg.AppendAddress(sample->pc);
|
| + msg.AppendAddress(reinterpret_cast<Address>(sample->pc));
|
| msg.Append(",%d", static_cast<int>(timer_.Elapsed().InMicroseconds()));
|
| if (sample->has_external_callback) {
|
| msg.Append(",1,");
|
| - msg.AppendAddress(sample->external_callback_entry);
|
| + msg.AppendAddress(
|
| + reinterpret_cast<Address>(sample->external_callback_entry));
|
| } else {
|
| msg.Append(",0,");
|
| - msg.AppendAddress(sample->tos);
|
| + msg.AppendAddress(reinterpret_cast<Address>(sample->tos));
|
| }
|
| msg.Append(",%d", static_cast<int>(sample->state));
|
| if (overflow) {
|
| @@ -1398,7 +1402,7 @@ void Logger::TickEvent(TickSample* sample, bool overflow) {
|
| }
|
| for (unsigned i = 0; i < sample->frames_count; ++i) {
|
| msg.Append(',');
|
| - msg.AppendAddress(sample->stack[i]);
|
| + msg.AppendAddress(reinterpret_cast<Address>(sample->stack[i]));
|
| }
|
| msg.WriteToLogFile();
|
| }
|
|
|