Index: src/log.cc |
diff --git a/src/log.cc b/src/log.cc |
index 283530358494d80187095668aeb0f24defbb387c..ea81b817c69798f4c5d039b4c50990fe2e6f2591 100644 |
--- a/src/log.cc |
+++ b/src/log.cc |
@@ -138,12 +138,14 @@ bool Profiler::paused_ = false; |
// |
void StackTracer::Trace(TickSample* sample) { |
// Assuming that stack grows from lower addresses |
- if (sample->sp < sample->fp && sample->fp < low_stack_bound_) { |
+ if (sample->state != GC |
+ && (sample->sp < sample->fp && sample->fp < low_stack_bound_)) { |
sample->InitStack(1); |
sample->stack[0] = Memory::Address_at( |
(Address)(sample->fp + StandardFrameConstants::kCallerPCOffset)); |
} else { |
- // FP seems to be in some intermediate state, better discard this sample |
+ // GC runs or FP seems to be in some intermediate state, |
+ // better discard this sample |
sample->InitStack(0); |
} |
} |