| Index: src/debug.cc
|
| diff --git a/src/debug.cc b/src/debug.cc
|
| index ae9e284015ba3ea4f9ff93851afd11861bdfb2eb..c83ad4bf5961385a36513cc247a8c9b00746f687 100644
|
| --- a/src/debug.cc
|
| +++ b/src/debug.cc
|
| @@ -1263,8 +1263,12 @@ void Debug::PrepareStep(StepAction step_action,
|
| return;
|
| }
|
|
|
| + List<FrameSummary> frames(FLAG_max_inlining_levels + 1);
|
| + frames_it.frame()->Summarize(&frames);
|
| + FrameSummary summary = frames.first();
|
| +
|
| // Get the debug info (create it if it does not exist).
|
| - Handle<JSFunction> function(frame->function());
|
| + Handle<JSFunction> function(summary.function());
|
| Handle<SharedFunctionInfo> shared(function->shared());
|
| if (!EnsureDebugInfo(shared, function)) {
|
| // Return if ensuring debug info failed.
|
| @@ -1280,7 +1284,7 @@ void Debug::PrepareStep(StepAction step_action,
|
|
|
| // PC points to the instruction after the current one, possibly a break
|
| // location as well. So the "- 1" to exclude it from the search.
|
| - Address call_pc = frame->pc() - 1;
|
| + Address call_pc = summary.pc() - 1;
|
| BreakLocation location =
|
| BreakLocation::FromAddress(debug_info, ALL_BREAK_LOCATIONS, call_pc);
|
|
|
| @@ -1347,7 +1351,7 @@ void Debug::PrepareStep(StepAction step_action,
|
|
|
| // Remember source position and frame to handle step next.
|
| thread_local_.last_statement_position_ =
|
| - debug_info->code()->SourceStatementPosition(frame->pc());
|
| + debug_info->code()->SourceStatementPosition(summary.pc());
|
| thread_local_.last_fp_ = frame->UnpaddedFP();
|
| } else {
|
| // If there's restarter frame on top of the stack, just get the pointer
|
| @@ -1419,7 +1423,7 @@ void Debug::PrepareStep(StepAction step_action,
|
| // Object::Get/SetPropertyWithAccessor, otherwise the step action will be
|
| // propagated on the next Debug::Break.
|
| thread_local_.last_statement_position_ =
|
| - debug_info->code()->SourceStatementPosition(frame->pc());
|
| + debug_info->code()->SourceStatementPosition(summary.pc());
|
| thread_local_.last_fp_ = frame->UnpaddedFP();
|
| }
|
|
|
|
|