summaryrefslogtreecommitdiff
path: root/gdb/infrun.c
diff options
context:
space:
mode:
authorAndrew Cagney <cagney@redhat.com>2001-06-28 21:48:41 +0000
committerAndrew Cagney <cagney@redhat.com>2001-06-28 21:48:41 +0000
commitd5d4eb6d55d6280ebe262d22966e8cdbebc2ce5a (patch)
treeafb171e56edb00ed87f0dba4f1134a8477773cf0 /gdb/infrun.c
parent886cc7d51cda43bc1a5cc9098404f9ca28c8612d (diff)
downloadgdb-d5d4eb6d55d6280ebe262d22966e8cdbebc2ce5a.tar.gz
From Fernando Nasser:
* infrun.c (handle_inferior_event): Handle "nexti" inside function prologues.
Diffstat (limited to 'gdb/infrun.c')
-rw-r--r--gdb/infrun.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/gdb/infrun.c b/gdb/infrun.c
index 972b0930a74..e3556229473 100644
--- a/gdb/infrun.c
+++ b/gdb/infrun.c
@@ -2755,11 +2755,16 @@ handle_inferior_event (struct execution_control_state *ecs)
{
/* It's a subroutine call. */
- if (step_over_calls == STEP_OVER_NONE)
+ if ((step_over_calls == STEP_OVER_NONE)
+ || ((step_range_end == 1)
+ && in_prologue (prev_pc, ecs->stop_func_start)))
{
/* I presume that step_over_calls is only 0 when we're
supposed to be stepping at the assembly language level
("stepi"). Just stop. */
+ /* Also, maybe we just did a "nexti" inside a prolog,
+ so we thought it was a subroutine call but it was not.
+ Stop as well. FENN */
stop_step = 1;
print_stop_reason (END_STEPPING_RANGE, 0);
stop_stepping (ecs);