aboutsummaryrefslogtreecommitdiff
path: root/gdb/infcmd.c
diff options
context:
space:
mode:
authorPedro Alves <palves@redhat.com>2008-12-05 22:38:10 +0000
committerPedro Alves <palves@redhat.com>2008-12-05 22:38:10 +0000
commit1641cfccdd3f848fa9c39b48335f694031594b87 (patch)
treeb044ecbf62395d78f36fbac48b2a7353b555090e /gdb/infcmd.c
parent4674ecfcf4045b3a3d81a4a979debd59ea1b6b11 (diff)
downloadgdb-1641cfccdd3f848fa9c39b48335f694031594b87.zip
gdb-1641cfccdd3f848fa9c39b48335f694031594b87.tar.gz
gdb-1641cfccdd3f848fa9c39b48335f694031594b87.tar.bz2
* infcmd.c (step_1, step_once): Look up the stepping range based
on the current frame's PC, not on stop_pc.
Diffstat (limited to 'gdb/infcmd.c')
-rw-r--r--gdb/infcmd.c14
1 files changed, 10 insertions, 4 deletions
diff --git a/gdb/infcmd.c b/gdb/infcmd.c
index 512bb38..9bfe2d4 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"));