aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gdb/ChangeLog7
-rw-r--r--gdb/i386-tdep.c5
-rw-r--r--gdb/x86-64-tdep.c6
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;
}