Index: src/log.cc |
diff --git a/src/log.cc b/src/log.cc |
index 9f85213c3b7ea206705632a1640c302f62dec836..7c6f06f16d3651b5d9fe059a5c4a342570c04c2d 100644 |
--- a/src/log.cc |
+++ b/src/log.cc |
@@ -23,6 +23,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 +646,25 @@ 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(i_isolate, state, TickSample::kIncludeCEntryFrame, true); |
+ if (sample->pc == nullptr) return; |
+ sample->timestamp = base::TimeTicks::HighResolutionNow(); |
alph
2016/07/01 01:08:57
not needed?
lpy
2016/07/01 17:33:38
Done.
|
+ 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(); |
} |
} |
@@ -1381,14 +1384,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) { |
@@ -1396,7 +1400,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(); |
} |