aboutsummaryrefslogtreecommitdiff
path: root/gdb/frame.c
diff options
context:
space:
mode:
authorDaniel Jacobowitz <drow@false.org>2007-09-24 21:34:58 +0000
committerDaniel Jacobowitz <drow@false.org>2007-09-24 21:34:58 +0000
commit322766326763e8d4765940a4c332a9f012f1e5a2 (patch)
tree62d7514cab664977a943d248c1dfc1b7996c7ef9 /gdb/frame.c
parente970b90aa90b6250b2d2c28adf596410f7c4d7b3 (diff)
downloadgdb-322766326763e8d4765940a4c332a9f012f1e5a2.zip
gdb-322766326763e8d4765940a4c332a9f012f1e5a2.tar.gz
gdb-322766326763e8d4765940a4c332a9f012f1e5a2.tar.bz2
* frame.c (get_prev_frame_1): Also check for PC in the same register.
Diffstat (limited to 'gdb/frame.c')
-rw-r--r--gdb/frame.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/gdb/frame.c b/gdb/frame.c
index 5e9eda4..9379c8c 100644
--- a/gdb/frame.c
+++ b/gdb/frame.c
@@ -1231,7 +1231,7 @@ get_prev_frame_1 (struct frame_info *this_frame)
&& get_frame_type (this_frame) == NORMAL_FRAME
&& get_frame_type (this_frame->next) == NORMAL_FRAME)
{
- int optimized, realnum;
+ int optimized, realnum, nrealnum;
enum lval_type lval, nlval;
CORE_ADDR addr, naddr;
@@ -1240,9 +1240,10 @@ get_prev_frame_1 (struct frame_info *this_frame)
&optimized, &lval, &addr, &realnum);
frame_register_unwind_location (get_next_frame (this_frame),
gdbarch_pc_regnum (current_gdbarch),
- &optimized, &nlval, &naddr, &realnum);
+ &optimized, &nlval, &naddr, &nrealnum);
- if (lval == lval_memory && lval == nlval && addr == naddr)
+ if ((lval == lval_memory && lval == nlval && addr == naddr)
+ || (lval == lval_register && lval == nlval && realnum == nrealnum))
{
if (frame_debug)
{