diff options
author | Andrew Cagney <cagney@redhat.com> | 2004-04-02 20:21:07 +0000 |
---|---|---|
committer | Andrew Cagney <cagney@redhat.com> | 2004-04-02 20:21:07 +0000 |
commit | adb54772d26f3651310c78860ccb383433a46337 (patch) | |
tree | c7ba2b0a6259f2e8803ef7ecd99760145ce7c8f8 | |
parent | 304396fba9a40662a849f6a116351f3b508bcd68 (diff) | |
download | gdb-adb54772d26f3651310c78860ccb383433a46337.zip gdb-adb54772d26f3651310c78860ccb383433a46337.tar.gz gdb-adb54772d26f3651310c78860ccb383433a46337.tar.bz2 |
2004-04-02 Andrew Cagney <cagney@redhat.com>
* frame.c (get_prev_frame_1): Exclude signal trampolines from the
"previous frame inner to this frame" test.
-rw-r--r-- | gdb/ChangeLog | 5 | ||||
-rw-r--r-- | gdb/frame.c | 7 |
2 files changed, 9 insertions, 3 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog index cf9cbdd..151ade1 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,5 +1,10 @@ 2004-04-02 Andrew Cagney <cagney@redhat.com> + * frame.c (get_prev_frame_1): Exclude signal trampolines from the + "previous frame inner to this frame" test. + +2004-04-02 Andrew Cagney <cagney@redhat.com> + * frame.c (safe_frame_unwind_memory): New function. * frame.h (safe_frame_unwind_memory): Declare. Update description of /safe_/ methods. diff --git a/gdb/frame.c b/gdb/frame.c index bc04397..1f45e8e 100644 --- a/gdb/frame.c +++ b/gdb/frame.c @@ -1792,9 +1792,10 @@ get_prev_frame_1 (struct frame_info *this_frame) /* Check that this frame's ID isn't inner to (younger, below, next) the next frame. This happens when a frame unwind goes backwards. - Since the sentinel frame doesn't really exist, don't compare the - inner-most against that sentinel. */ - if (this_frame->level > 0 + Exclude signal trampolines (due to sigaltstack the frame ID can + go backwards) and sentinel frames (the test is meaningless). */ + if (this_frame->next->level >= 0 + && this_frame->next->type != SIGTRAMP_FRAME && frame_id_inner (get_frame_id (this_frame), get_frame_id (this_frame->next))) error ("Previous frame inner to this frame (corrupt stack?)"); |