* alpha-linux-tdep.c (alpha_linux_pc_in_sigtramp): New function.

(alpha_linux_init_abi): Set gdbarch_pc_in_sigtramp to
alpha_linux_pc_in_sigtramp.
* alpha-osf1-tdep.c (alpha_osf1_pc_in_sigtramp): New function.
(alpha_osf1_init_abi): Set gdbarch_pc_in_sigtramp to
alpha_osf1_pc_in_sigtramp.
* alpha-tdep.c (alpha_osf_in_sigtramp): Remove.
* alphafbsd-tdep.c (alphafbsd_pc_in_sigtramp): New function.
(alphafbsd_init_abi): Set gdbarch_pc_in_sigtramp to
alphafbsd_pc_in_sigtramp.
* alphanbsd-tdep.c (alphanbsd_pc_in_sigtramp): New function.
(alphanbsd_init_abi): Set gdbarch_pc_in_sigtramp to
alphanbsd_pc_in_sigtramp.
* config/alpha/tm-alpha.h (IN_SIGTRAMP): Remove.
* config/alpha/tm-alphalinux.h (IN_SIGTRAMP): Remove.
This commit is contained in:
Jason Thorpe 2002-04-25 05:06:08 +00:00
parent 5e4f33793e
commit 6c72f9f974
8 changed files with 52 additions and 17 deletions

View file

@ -1,3 +1,21 @@
2002-04-24 Jason Thorpe <thorpej@wasabisystems.com>
* alpha-linux-tdep.c (alpha_linux_pc_in_sigtramp): New function.
(alpha_linux_init_abi): Set gdbarch_pc_in_sigtramp to
alpha_linux_pc_in_sigtramp.
* alpha-osf1-tdep.c (alpha_osf1_pc_in_sigtramp): New function.
(alpha_osf1_init_abi): Set gdbarch_pc_in_sigtramp to
alpha_osf1_pc_in_sigtramp.
* alpha-tdep.c (alpha_osf_in_sigtramp): Remove.
* alphafbsd-tdep.c (alphafbsd_pc_in_sigtramp): New function.
(alphafbsd_init_abi): Set gdbarch_pc_in_sigtramp to
alphafbsd_pc_in_sigtramp.
* alphanbsd-tdep.c (alphanbsd_pc_in_sigtramp): New function.
(alphanbsd_init_abi): Set gdbarch_pc_in_sigtramp to
alphanbsd_pc_in_sigtramp.
* config/alpha/tm-alpha.h (IN_SIGTRAMP): Remove.
* config/alpha/tm-alphalinux.h (IN_SIGTRAMP): Remove.
2002-04-24 Jason Thorpe <thorpej@wasabisystems.com>
* config/alpha/nbsd.mh (NATDEPFILES): Remove solib-legacy.o.

View file

@ -85,12 +85,20 @@ alpha_linux_sigtramp_offset (CORE_ADDR pc)
return -1;
}
static int
alpha_linux_pc_in_sigtramp (CORE_ADDR pc, char *func_name)
{
return (alpha_linux_sigtramp_offset (pc) >= 0);
}
static void
alpha_linux_init_abi (struct gdbarch_info info,
struct gdbarch *gdbarch)
{
struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch);
set_gdbarch_pc_in_sigtramp (gdbarch, alpha_linux_pc_in_sigtramp);
tdep->dynamic_sigtramp_offset = alpha_linux_sigtramp_offset;
}

View file

@ -37,12 +37,20 @@ alpha_osf1_skip_sigtramp_frame (struct frame_info *frame, CORE_ADDR pc)
return 0;
}
static int
alpha_osf1_pc_in_sigtramp (CORE_ADDR pc, char *func_name)
{
return (func_name != NULL && STREQ ("__sigtramp", func_name));
}
static void
alpha_osf1_init_abi (struct gdbarch_info info,
struct gdbarch *gdbarch)
{
struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch);
set_gdbarch_pc_in_sigtramp (gdbarch, alpha_osf1_pc_in_sigtramp);
tdep->skip_sigtramp_frame = alpha_osf1_skip_sigtramp_frame;
}

View file

@ -193,12 +193,6 @@ struct linked_proc_info
}
*linked_proc_desc_table = NULL;
int
alpha_osf_in_sigtramp (CORE_ADDR pc, char *func_name)
{
return (func_name != NULL && STREQ ("__sigtramp", func_name));
}
static CORE_ADDR
alpha_frame_past_sigtramp_frame (struct frame_info *frame, CORE_ADDR pc)
{

View file

@ -54,12 +54,21 @@ alphafbsd_use_struct_convention (int gcc_p, struct type *type)
return 0;
}
static int
alphafbsd_pc_in_sigtramp (CORE_ADDR pc, char *func_name)
{
/* FIXME */
return 0;
}
static void
alphafbsd_init_abi (struct gdbarch_info info,
struct gdbarch *gdbarch)
{
struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch);
set_gdbarch_pc_in_sigtramp (gdbarch, alphafbsd_pc_in_sigtramp);
set_gdbarch_use_struct_convention (gdbarch, alphafbsd_use_struct_convention);
}

View file

@ -123,12 +123,20 @@ alphanbsd_sigtramp_offset (CORE_ADDR pc)
return -1;
}
static int
alphanbsd_pc_in_sigtramp (CORE_ADDR pc, char *func_name)
{
return (alphanbsd_sigtramp_offset (pc) >= 0);
}
static void
alphanbsd_init_abi (struct gdbarch_info info,
struct gdbarch *gdbarch)
{
struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch);
set_gdbarch_pc_in_sigtramp (gdbarch, alphanbsd_pc_in_sigtramp);
/* NetBSD/alpha does not provide single step support via ptrace(2); we
must use software single-stepping. */
set_gdbarch_software_single_step (gdbarch, alpha_software_single_step);

View file

@ -45,11 +45,6 @@ struct symbol;
#define FUNCTION_START_OFFSET 0
/* Are we currently handling a signal ? */
#define IN_SIGTRAMP(pc, name) alpha_osf_in_sigtramp ((pc), (name))
extern int alpha_osf_in_sigtramp (CORE_ADDR, char *);
#define BREAKPOINT {0x80, 0, 0, 0} /* call_pal bpt */
/* Special symbol found in blocks associated with routines. We can hang

View file

@ -27,14 +27,9 @@
#include "alpha/tm-alpha.h"
/* Are we currently handling a signal ? */
extern LONGEST alpha_linux_sigtramp_offset (CORE_ADDR);
#undef IN_SIGTRAMP
#define IN_SIGTRAMP(pc, name) (alpha_linux_sigtramp_offset (pc) >= 0)
/* Get start and end address of sigtramp handler. */
extern LONGEST alpha_linux_sigtramp_offset (CORE_ADDR);
#define SIGTRAMP_START(pc) (pc - alpha_linux_sigtramp_offset (pc))
#define SIGTRAMP_END(pc) (SIGTRAMP_START(pc) + 3*4)