* i386obsd-tdep.c (i386obsd_sigtramp_p): Adjust for changed signal
authorMark Kettenis <kettenis@gnu.org>
Wed, 4 Aug 2004 21:07:42 +0000 (21:07 +0000)
committerMark Kettenis <kettenis@gnu.org>
Wed, 4 Aug 2004 21:07:42 +0000 (21:07 +0000)
trampoline in OpenBSD 3.5-current.

gdb/ChangeLog
gdb/i386obsd-tdep.c

index d1e53c873ae0a205987c4b743e19ec6aed10b3cc..922ca9e638f46f461f8bf627b29b0651dd872c68 100644 (file)
@@ -1,5 +1,8 @@
 2004-08-04  Mark Kettenis  <kettenis@gnu.org>
 
+       * i386obsd-tdep.c (i386obsd_sigtramp_p): Adjust for changed signal
+       trampoline in OpenBSD 3.5-current.
+
        * i387-tdep.c (i387_supply_fsave): Provide summy values for the
        SSE registers.
 
index 6f1ae5b8c6ea826b4a77eb79fc36afe6330cda88..b2c803fe56bae8e42fea003dbf8213c615ee1e87 100644 (file)
@@ -78,15 +78,25 @@ i386obsd_sigtramp_p (struct frame_info *next_frame)
   if (find_pc_section (pc) != NULL)
     return 0;
 
-  /* If we can't read the instructions at START_PC, return zero.  */
+  /* Allocate buffer.  */
   buf = alloca (sizeof sigreturn);
-  if (target_read_memory (start_pc + 0x14, buf, sizeof sigreturn))
+
+  /* If we can't read the instructions at START_PC, return zero.  */
+  if (target_read_memory (start_pc + 0x0a, buf, sizeof sigreturn))
     return 0;
 
   /* Check for sigreturn(2).  */
   if (memcmp (buf, sigreturn, sizeof sigreturn) == 0)
     return 1;
 
+  /* If we can't read the instructions at START_PC, return zero.  */
+  if (target_read_memory (start_pc + 0x14, buf, sizeof sigreturn))
+    return 0;
+
+  /* Check for sigreturn(2) (again).  */
+  if (memcmp (buf, sigreturn, sizeof sigreturn) == 0)
+    return 1;
+
   return 0;
 }
 \f