Index: src/frames.cc |
diff --git a/src/frames.cc b/src/frames.cc |
index 145f50f49ee579e17d5942bc0d28c3d9aeb46b39..e4ca9346b997d48c72cef1da71adfd54df82ed8d 100644 |
--- a/src/frames.cc |
+++ b/src/frames.cc |
@@ -1398,14 +1398,20 @@ void JavaScriptFrame::Print(StringStream* accumulator, |
int offset = static_cast<int>(pc - code->instruction_start()); |
int source_pos = code->SourcePosition(offset); |
int line = script->GetLineNumber(source_pos) + 1; |
- accumulator->Add(":%d", line); |
+ accumulator->Add(":%d] [pc=%p]", line, pc); |
+ } else if (is_interpreted()) { |
+ const InterpretedFrame* iframe = |
+ reinterpret_cast<const InterpretedFrame*>(this); |
+ BytecodeArray* bytecodes = iframe->GetBytecodeArray(); |
+ int offset = iframe->GetBytecodeOffset(); |
+ int source_pos = bytecodes->SourcePosition(offset); |
+ int line = script->GetLineNumber(source_pos) + 1; |
+ accumulator->Add(":%d] [bytecode=%p offset=%d]", line, bytecodes, offset); |
} else { |
int function_start_pos = shared->start_position(); |
int line = script->GetLineNumber(function_start_pos) + 1; |
- accumulator->Add(":~%d", line); |
+ accumulator->Add(":~%d] [pc=%p]", line, pc); |
} |
- |
- accumulator->Add("] [pc=%p] ", pc); |
} |
accumulator->Add("(this=%o", receiver); |