diff options
author | Mark Kettenis <kettenis@gnu.org> | 2003-05-31 16:49:18 +0000 |
---|---|---|
committer | Mark Kettenis <kettenis@gnu.org> | 2003-05-31 16:49:18 +0000 |
commit | 1c3545aea9b4e7106e736ed3f6908e5a5d42d015 (patch) | |
tree | 1848cd698347323012cdc2d4eae6fb7f05d4e494 | |
parent | e11c53d2ed9beadb12c0aeb8b91f763ea3fe5dab (diff) | |
download | gdb-1c3545aea9b4e7106e736ed3f6908e5a5d42d015.zip gdb-1c3545aea9b4e7106e736ed3f6908e5a5d42d015.tar.gz gdb-1c3545aea9b4e7106e736ed3f6908e5a5d42d015.tar.bz2 |
* i386-tdep.c (i386_sigtramp_frame_p): Only handle frames if we
have a sigcontext_addr handler.
* x86-64-tdep.c (x86_64_sigtramp_frame_p): Assert that we have a
sigcontext_addr handler.
-rw-r--r-- | gdb/ChangeLog | 7 | ||||
-rw-r--r-- | gdb/i386-tdep.c | 5 | ||||
-rw-r--r-- | gdb/x86-64-tdep.c | 6 |
3 files changed, 17 insertions, 1 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog index e00935d..94080f7 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,10 @@ +2003-05-31 Mark Kettenis <kettenis@gnu.org> + + * i386-tdep.c (i386_sigtramp_frame_p): Only handle frames if we + have a sigcontext_addr handler. + * x86-64-tdep.c (x86_64_sigtramp_frame_p): Assert that we have a + sigcontext_addr handler. + 2003-05-31 Andrew Cagney <cagney@redhat.com> * mips-tdep.c (print_gp_register_row): Replace do_gp_register_row. diff --git a/gdb/i386-tdep.c b/gdb/i386-tdep.c index 1cbe043..c03df8e 100644 --- a/gdb/i386-tdep.c +++ b/gdb/i386-tdep.c @@ -930,6 +930,11 @@ i386_sigtramp_frame_p (CORE_ADDR pc) { char *name; + /* We shouldn't even bother to try if the OSABI didn't register + a sigcontext_addr handler. */ + if (!gdbarch_tdep (current_gdbarch)->sigcontext_addr) + return NULL; + find_pc_partial_function (pc, &name, NULL, NULL); if (PC_IN_SIGTRAMP (pc, name)) return &i386_sigtramp_frame_unwind; diff --git a/gdb/x86-64-tdep.c b/gdb/x86-64-tdep.c index 7bcabfd..a33d33a 100644 --- a/gdb/x86-64-tdep.c +++ b/gdb/x86-64-tdep.c @@ -1094,7 +1094,11 @@ x86_64_sigtramp_frame_p (CORE_ADDR pc) find_pc_partial_function (pc, &name, NULL, NULL); if (PC_IN_SIGTRAMP (pc, name)) - return &x86_64_sigtramp_frame_unwind; + { + gdb_assert (gdbarch_tdep (current_gdbarch)->sigcontext_addr); + + return &x86_64_sigtramp_frame_unwind; + } return NULL; } |