* i386obsd-tdep.c (i386obsd_sigtramp_p): Use

safe_frame_unwind_memory instead of target_read_memory.
This commit is contained in:
Mark Kettenis 2004-08-06 20:51:01 +00:00
parent c0ccb908a0
commit c822af0c70
2 changed files with 9 additions and 5 deletions

View file

@ -1,5 +1,8 @@
2004-08-05 Mark Kettenis <kettenis@chello.nl>
* i386obsd-tdep.c (i386obsd_sigtramp_p): Use
safe_frame_unwind_memory instead of target_read_memory.
* infptrace.c: Include <sys/file.h> if HAVE_SYS_FILE_H instead of
!NO_SYS_FILE.
[KERNEL_U_ADDR_BSD]: Don't include <a.out.h>.

View file

@ -65,6 +65,7 @@ i386obsd_sigtramp_p (struct frame_info *next_frame)
0x67, 0x00, 0x00, 0x00, /* movl $SYS_sigreturn, %eax */
0xcd, 0x80 /* int $0x80 */
};
size_t buflen = sizeof sigreturn;
char *name, *buf;
/* If the function has a valid symbol name, it isn't a
@ -79,22 +80,22 @@ i386obsd_sigtramp_p (struct frame_info *next_frame)
return 0;
/* Allocate buffer. */
buf = alloca (sizeof sigreturn);
buf = alloca (buflen);
/* If we can't read the instructions at START_PC, return zero. */
if (target_read_memory (start_pc + 0x0a, buf, sizeof sigreturn))
if (!safe_frame_unwind_memory (next_frame, start_pc + 0x0a, buf, buflen))
return 0;
/* Check for sigreturn(2). */
if (memcmp (buf, sigreturn, sizeof sigreturn) == 0)
if (memcmp (buf, sigreturn, buflen) == 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))
if (!safe_frame_unwind_memory (next_frame, start_pc + 0x14, buf, buflen))
return 0;
/* Check for sigreturn(2) (again). */
if (memcmp (buf, sigreturn, sizeof sigreturn) == 0)
if (memcmp (buf, sigreturn, buflen) == 0)
return 1;
return 0;