diff options
author | Daniel Jacobowitz <drow@false.org> | 2007-09-24 21:34:58 +0000 |
---|---|---|
committer | Daniel Jacobowitz <drow@false.org> | 2007-09-24 21:34:58 +0000 |
commit | 322766326763e8d4765940a4c332a9f012f1e5a2 (patch) | |
tree | 62d7514cab664977a943d248c1dfc1b7996c7ef9 /gdb | |
parent | e970b90aa90b6250b2d2c28adf596410f7c4d7b3 (diff) | |
download | gdb-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')
-rw-r--r-- | gdb/ChangeLog | 4 | ||||
-rw-r--r-- | gdb/frame.c | 7 |
2 files changed, 8 insertions, 3 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 5e7fd77..5f34782 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,7 @@ +2007-09-24 Daniel Jacobowitz <dan@codesourcery.com> + + * frame.c (get_prev_frame_1): Also check for PC in the same register. + 2007-09-24 Vladimir Prus <vladimir@codesourcery.com> * breakpoint.c (remove_sal): New. 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) { |