aboutsummaryrefslogtreecommitdiff
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
commit100a02e1deec2f037a15cdf232f026dc79763bf8 (patch)
treeb5206f268f149001fad128f17b7dbba0d6d06e74 /gdb/infrun.c
parent80b34fabd3043272bd132a1479fcbd81d761b16a (diff)
downloadgdb-100a02e1deec2f037a15cdf232f026dc79763bf8.zip
gdb-100a02e1deec2f037a15cdf232f026dc79763bf8.tar.gz
gdb-100a02e1deec2f037a15cdf232f026dc79763bf8.tar.bz2
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 972b093..e355622 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);