* Makefile.in (alphanbsd-tdep.o): Add $(frame_h) to dependency
list. * alphanbsd-tdep.c (alphanbsd_sigcontext_addr) (alphanbsd_skip_sigtramp_frame): New functions. (alphanbsd_init_abi): Set tdep->skip_sigtramp_frame to alphanbsd_skip_sigtramp_frame. Set tdep->sigcontext_addr to alphanbsd_sigcontext_addr.
This commit is contained in:
parent
3d9b49b090
commit
2ca8ae213f
@ -1,3 +1,13 @@
|
||||
2002-08-31 Jason Thorpe <thorpej@wasabisystems.com>
|
||||
|
||||
* Makefile.in (alphanbsd-tdep.o): Add $(frame_h) to dependency
|
||||
list.
|
||||
* alphanbsd-tdep.c (alphanbsd_sigcontext_addr)
|
||||
(alphanbsd_skip_sigtramp_frame): New functions.
|
||||
(alphanbsd_init_abi): Set tdep->skip_sigtramp_frame to
|
||||
alphanbsd_skip_sigtramp_frame. Set tdep->sigcontext_addr
|
||||
to alphanbsd_sigcontext_addr.
|
||||
|
||||
2002-08-31 Jason Thorpe <thorpej@wasabisystems.com>
|
||||
|
||||
* Makefile.in (mipsnbsd-tdep.o): Add nbsd-tdep.h to dependency
|
||||
|
@ -1500,9 +1500,9 @@ alphabsd-nat.o: alphabsd-nat.c $(defs_h) $(inferior_h) $(regcache_h) \
|
||||
alphabsd-tdep.o: alphabsd-tdep.c $(defs_h) $(regcache_h) $(alpha_tdep_h) \
|
||||
$(alphabsd_tdep_h)
|
||||
alphafbsd-tdep.o: alphafbsd-tdep.c $(defs_h) $(value_h) $(alpha_tdep_h)
|
||||
alphanbsd-tdep.o: alphanbsd-tdep.c $(defs_h) $(gdbcore_h) $(regcache_h) \
|
||||
$(value_h) $(solib_svr4_h) $(alpha_tdep_h) $(alphabsd_tdep_h) \
|
||||
$(nbsd_tdep_h)
|
||||
alphanbsd-tdep.o: alphanbsd-tdep.c $(defs_h) $(gdbcore_h) $(frame_h) \
|
||||
$(regcache_h) $(value_h) $(solib_svr4_h) $(alpha_tdep_h) \
|
||||
$(alphabsd_tdep_h) $(nbsd_tdep_h)
|
||||
annotate.o: annotate.c $(defs_h) $(annotate_h) $(value_h) $(target_h) \
|
||||
$(gdbtypes_h) $(breakpoint_h)
|
||||
# OBSOLETE arc-tdep.o: arc-tdep.c
|
||||
|
@ -21,6 +21,7 @@
|
||||
|
||||
#include "defs.h"
|
||||
#include "gdbcore.h"
|
||||
#include "frame.h"
|
||||
#include "regcache.h"
|
||||
#include "value.h"
|
||||
|
||||
@ -182,6 +183,29 @@ alphanbsd_pc_in_sigtramp (CORE_ADDR pc, char *func_name)
|
||||
|| alphanbsd_sigtramp_offset (pc) >= 0);
|
||||
}
|
||||
|
||||
static CORE_ADDR
|
||||
alphanbsd_sigcontext_addr (struct frame_info *frame)
|
||||
{
|
||||
/* FIXME: This is not correct for all versions of NetBSD/alpha.
|
||||
We will probably need to disassemble the trampoline to figure
|
||||
out which trampoline frame type we have. */
|
||||
return frame->frame;
|
||||
}
|
||||
|
||||
static CORE_ADDR
|
||||
alphanbsd_skip_sigtramp_frame (struct frame_info *frame, CORE_ADDR pc)
|
||||
{
|
||||
char *name;
|
||||
|
||||
/* FIXME: This is not correct for all versions of NetBSD/alpha.
|
||||
We will probably need to disassemble the trampoline to figure
|
||||
out which trampoline frame type we have. */
|
||||
find_pc_partial_function (pc, &name, (CORE_ADDR *) NULL, (CORE_ADDR *) NULL);
|
||||
if (PC_IN_SIGTRAMP (pc, name))
|
||||
return frame->frame;
|
||||
return 0;
|
||||
}
|
||||
|
||||
static void
|
||||
alphanbsd_init_abi (struct gdbarch_info info,
|
||||
struct gdbarch *gdbarch)
|
||||
@ -197,7 +221,9 @@ alphanbsd_init_abi (struct gdbarch_info info,
|
||||
set_solib_svr4_fetch_link_map_offsets (gdbarch,
|
||||
nbsd_lp64_solib_svr4_fetch_link_map_offsets);
|
||||
|
||||
tdep->skip_sigtramp_frame = alphanbsd_skip_sigtramp_frame;
|
||||
tdep->dynamic_sigtramp_offset = alphanbsd_sigtramp_offset;
|
||||
tdep->sigcontext_addr = alphanbsd_sigcontext_addr;
|
||||
|
||||
tdep->jb_pc = 2;
|
||||
tdep->jb_elt_size = 8;
|
||||
|
Loading…
Reference in New Issue
Block a user