summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPedro Alves <pedro@codesourcery.com>2008-12-10 21:32:14 +0000
committerPedro Alves <pedro@codesourcery.com>2008-12-10 21:32:14 +0000
commit56f6e3676173c9a41dc4ed227a8450550cec718c (patch)
treee66d3141567e6b117ffca210148e20d8dc93e4f6
parent17ec07b78f28e400d2e839d732abc94a6cb3ae2f (diff)
downloadgdb-56f6e3676173c9a41dc4ed227a8450550cec718c.tar.gz
* infcmd.c (until_next_command, finish_backward): Use get_frame_pc
instead of read_pc.
-rw-r--r--gdb/ChangeLog5
-rw-r--r--gdb/infcmd.c10
2 files changed, 11 insertions, 4 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index cb3917f1547..67b6515fd55 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,8 @@
+2008-12-10 Pedro Alves <pedro@codesourcery.com>
+
+ * infcmd.c (until_next_command, finish_backward): Use get_frame_pc
+ instead of read_pc.
+
2008-12-09 Tom Tromey <tromey@redhat.com>
PR gdb/1815:
diff --git a/gdb/infcmd.c b/gdb/infcmd.c
index 9bfe2d496ca..d6772d3ce6f 100644
--- a/gdb/infcmd.c
+++ b/gdb/infcmd.c
@@ -1181,7 +1181,7 @@ until_next_command (int from_tty)
than the current line (if in symbolic section) or pc (if
not). */
- pc = read_pc ();
+ pc = get_frame_pc (frame);
func = find_pc_function (pc);
if (!func)
@@ -1405,11 +1405,13 @@ finish_backward (struct symbol *function)
struct thread_info *tp = inferior_thread ();
struct breakpoint *breakpoint;
struct cleanup *old_chain;
+ CORE_ADDR pc;
CORE_ADDR func_addr;
int back_up;
- if (find_pc_partial_function (get_frame_pc (get_current_frame ()),
- NULL, &func_addr, NULL) == 0)
+ pc = get_frame_pc (get_current_frame ());
+
+ if (find_pc_partial_function (pc, NULL, &func_addr, NULL) == 0)
internal_error (__FILE__, __LINE__,
_("Finish: couldn't find function."));
@@ -1426,7 +1428,7 @@ finish_backward (struct symbol *function)
no way that a function up the stack can have a return address
that's equal to its entry point. */
- if (sal.pc != read_pc ())
+ if (sal.pc != pc)
{
/* Set breakpoint and continue. */
breakpoint =