| Index: src/debug.cc
|
| ===================================================================
|
| --- src/debug.cc (revision 330)
|
| +++ src/debug.cc (working copy)
|
| @@ -94,14 +94,16 @@
|
| first = false;
|
| if (RinfoDone()) return;
|
|
|
| - // Update the current source position each time a source position is
|
| - // passed.
|
| + // Whenever a statement position or (plain) position is passed update the
|
| + // current value of these.
|
| if (is_position(rmode())) {
|
| - position_ = rinfo()->data() - debug_info_->shared()->start_position();
|
| if (is_statement_position(rmode())) {
|
| statement_position_ =
|
| rinfo()->data() - debug_info_->shared()->start_position();
|
| }
|
| + // Always update the position as we don't want that to be before the
|
| + // statement position.
|
| + position_ = rinfo()->data() - debug_info_->shared()->start_position();
|
| ASSERT(position_ >= 0);
|
| ASSERT(statement_position_ >= 0);
|
| }
|
| @@ -978,7 +980,7 @@
|
| int current_statement_position =
|
| break_location_iterator->code()->SourceStatementPosition(frame->pc());
|
| return thread_local_.last_fp_ == frame->fp() &&
|
| - thread_local_.last_statement_position_ == current_statement_position;
|
| + thread_local_.last_statement_position_ == current_statement_position;
|
| }
|
|
|
| // No step next action - don't continue.
|
|
|