diff options
-rw-r--r-- | gdb/ChangeLog | 3 | ||||
-rw-r--r-- | gdb/i386obsd-tdep.c | 14 |
2 files changed, 15 insertions, 2 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog index d1e53c8..922ca9e 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -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. diff --git a/gdb/i386obsd-tdep.c b/gdb/i386obsd-tdep.c index 6f1ae5b..b2c803f 100644 --- a/gdb/i386obsd-tdep.c +++ b/gdb/i386obsd-tdep.c @@ -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; } |