From 1641cfccdd3f848fa9c39b48335f694031594b87 Mon Sep 17 00:00:00 2001 From: Pedro Alves Date: Fri, 5 Dec 2008 22:38:10 +0000 Subject: [PATCH] * infcmd.c (step_1, step_once): Look up the stepping range based on the current frame's PC, not on stop_pc. --- gdb/ChangeLog | 5 +++++ gdb/infcmd.c | 14 ++++++++++---- 2 files changed, 15 insertions(+), 4 deletions(-) diff --git a/gdb/ChangeLog b/gdb/ChangeLog index a0f27153b42..51affa8bc87 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,8 @@ +2008-12-05 Pedro Alves + + * infcmd.c (step_1, step_once): Look up the stepping range based + on the current frame's PC, not on stop_pc. + 2008-12-05 Jan Kratochvil Fix compilation on 32-bit host configurations. diff --git a/gdb/infcmd.c b/gdb/infcmd.c index 512bb3864b5..9bfe2d496ca 100644 --- a/gdb/infcmd.c +++ b/gdb/infcmd.c @@ -812,12 +812,15 @@ step_1 (int skip_subroutines, int single_inst, char *count_string) if (!single_inst) { - find_pc_line_pc_range (stop_pc, + CORE_ADDR pc; + + pc = get_frame_pc (frame); + find_pc_line_pc_range (pc, &tp->step_range_start, &tp->step_range_end); if (tp->step_range_end == 0) { char *name; - if (find_pc_partial_function (stop_pc, &name, + if (find_pc_partial_function (pc, &name, &tp->step_range_start, &tp->step_range_end) == 0) error (_("Cannot find bounds of current function")); @@ -932,7 +935,10 @@ step_once (int skip_subroutines, int single_inst, int count, int thread) if (!single_inst) { - find_pc_line_pc_range (stop_pc, + CORE_ADDR pc; + + pc = get_frame_pc (frame); + find_pc_line_pc_range (pc, &tp->step_range_start, &tp->step_range_end); /* If we have no line info, switch to stepi mode. */ @@ -943,7 +949,7 @@ step_once (int skip_subroutines, int single_inst, int count, int thread) else if (tp->step_range_end == 0) { char *name; - if (find_pc_partial_function (stop_pc, &name, + if (find_pc_partial_function (pc, &name, &tp->step_range_start, &tp->step_range_end) == 0) error (_("Cannot find bounds of current function")); -- 2.30.2