+ if (step_range_end == 1) break; /* Don't do this for stepi/nexti */
+
+ /* We've wandered out of the step range (but we haven't done a
+ subroutine call or return (that's handled elsewhere)). We
+ don't really want to stop until we encounter the start of a
+ new statement. If so, we stop. Otherwise, we reset
+ step_range_start and step_range_end, and just continue. */
+ sal = find_pc_line(stop_pc, 0);
+
+ if (current_line != sal.line
+ && stop_pc == sal.pc) {
+ stop_step = 1;
+ break;
+ } else {
+ /* This is probably not necessary, but it probably makes
+ stepping more efficient, as we avoid calling find_pc_line()
+ for each instruction we step over. */
+ step_range_start = sal.pc;
+ step_range_end = sal.end;
+ }