* i386-tdep.c (i386_sigtramp_frame_p): Only handle frames if we
authorMark Kettenis <kettenis@gnu.org>
Sat, 31 May 2003 16:49:18 +0000 (16:49 +0000)
committerMark Kettenis <kettenis@gnu.org>
Sat, 31 May 2003 16:49:18 +0000 (16:49 +0000)
have a sigcontext_addr handler.
* x86-64-tdep.c (x86_64_sigtramp_frame_p): Assert that we have a
sigcontext_addr handler.

gdb/ChangeLog
gdb/i386-tdep.c
gdb/x86-64-tdep.c

index e00935dcf4de4e587ae4dc818980c29273c31d01..94080f73d436633f7c310321c55cb313bcbefb0d 100644 (file)
@@ -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.
index 1cbe0437f0c8b3452062a5f8ee568cf299c466c0..c03df8e7435de9709ccbae4557465f74ebcb10dd 100644 (file)
@@ -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;
index 7bcabfd72bac2236b4496aebd6ab8b45796e380a..a33d33ae03d21faa6047665088fd00ca007cd294 100644 (file)
@@ -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;
 }