Handle stepping into a function in reverse.
Handle stepping between line ranges in reverse.
(print_stop_reason): Print reason for NO_HISTORY.
-
+
+2006-03-31 Michael Snyder <msnyder@redhat.com>
+
+ * infrun.c: Make sure to check for EXEC_REVERSE not EXEC_FORWARD,
+ since targets that don't implement execdir will return EXEC_ERROR.
+
2006-03-31 Andrew Stubbs <andrew.stubbs@st.com>
* value.h (struct internalvar): Add field 'endian'.
get there, we'll need to single-step back to the
caller. */
- /* FIXME EXEC_ERROR */
- if (target_get_execution_direction () == EXEC_FORWARD)
- {
- insert_step_resume_breakpoint_at_frame
- (get_prev_frame (get_current_frame ()));
- }
- else
+ if (target_get_execution_direction () == EXEC_REVERSE)
{
/* FIXME: I'm not sure if we've handled the frame for
recursion. */
sr_sal.pc = ecs->stop_func_start;
insert_step_resume_breakpoint_at_sal (sr_sal, null_frame_id);
}
+ else
+ {
+ insert_step_resume_breakpoint_at_frame
+ (get_prev_frame (get_current_frame ()));
+ }
keep_going (ecs);
return;
}
return;
}
- /* FIXME EXEC_ERROR */
- if (target_get_execution_direction () == EXEC_FORWARD)
- {
- /* Set a breakpoint at callee's return address (the address
- at which the caller will resume). */
- insert_step_resume_breakpoint_at_frame
- (get_prev_frame (get_current_frame ()));
- }
- else
+ if (target_get_execution_direction () == EXEC_REVERSE)
{
/* Set a breakpoint at callee's start address.
From there we can step once and be back in the caller. */
sr_sal.pc = ecs->stop_func_start;
insert_step_resume_breakpoint_at_sal (sr_sal, null_frame_id);
}
+ else
+ {
+ /* Set a breakpoint at callee's return address (the address
+ at which the caller will resume). */
+ insert_step_resume_breakpoint_at_frame
+ (get_prev_frame (get_current_frame ()));
+ }
keep_going (ecs);
return;
}
if (ecs->stop_func_end && ecs->sal.end >= ecs->stop_func_end)
{
- /* FIXME EXEC_ERROR */
- if (target_get_execution_direction () == EXEC_FORWARD)
+ if (target_get_execution_direction () != EXEC_REVERSE)
{
/* If this is the last line of the function, don't keep
stepping (it would probably step us out of the function).