mirror of
https://sourceware.org/git/binutils-gdb.git
synced 2024-11-24 02:24:46 +08:00
2002-09-13 Andrew Cagney <cagney@redhat.com>
* gdbarch.sh (SIGTRAMP_END): Change to a predicate function. * gdbarch.h, gdbarch.c: Regenerate.
This commit is contained in:
parent
905abb3f14
commit
e76cff22f1
@ -1,3 +1,8 @@
|
||||
2002-09-13 Andrew Cagney <cagney@redhat.com>
|
||||
|
||||
* gdbarch.sh (SIGTRAMP_END): Change to a predicate function.
|
||||
* gdbarch.h, gdbarch.c: Regenerate.
|
||||
|
||||
2002-09-13 Andrew Cagney <ac131313@redhat.com>
|
||||
|
||||
* frame.c (find_saved_register): Delete function.
|
||||
|
@ -794,7 +794,7 @@ verify_gdbarch (struct gdbarch *gdbarch)
|
||||
/* Skip verify of in_solib_return_trampoline, invalid_p == 0 */
|
||||
/* Skip verify of pc_in_sigtramp, invalid_p == 0 */
|
||||
/* Skip verify of sigtramp_start, has predicate */
|
||||
/* Skip verify of sigtramp_end, invalid_p == 0 */
|
||||
/* Skip verify of sigtramp_end, has predicate */
|
||||
/* Skip verify of in_function_epilogue_p, invalid_p == 0 */
|
||||
/* Skip verify of construct_inferior_arguments, invalid_p == 0 */
|
||||
/* Skip verify of dwarf2_build_frame_info, has predicate */
|
||||
@ -4846,6 +4846,13 @@ set_gdbarch_sigtramp_start (struct gdbarch *gdbarch,
|
||||
gdbarch->sigtramp_start = sigtramp_start;
|
||||
}
|
||||
|
||||
int
|
||||
gdbarch_sigtramp_end_p (struct gdbarch *gdbarch)
|
||||
{
|
||||
gdb_assert (gdbarch != NULL);
|
||||
return gdbarch->sigtramp_end != 0;
|
||||
}
|
||||
|
||||
CORE_ADDR
|
||||
gdbarch_sigtramp_end (struct gdbarch *gdbarch, CORE_ADDR pc)
|
||||
{
|
||||
|
@ -2422,6 +2422,31 @@ extern void set_gdbarch_sigtramp_start (struct gdbarch *gdbarch, gdbarch_sigtram
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#if defined (SIGTRAMP_END)
|
||||
/* Legacy for systems yet to multi-arch SIGTRAMP_END */
|
||||
#if !defined (SIGTRAMP_END_P)
|
||||
#define SIGTRAMP_END_P() (1)
|
||||
#endif
|
||||
#endif
|
||||
|
||||
/* Default predicate for non- multi-arch targets. */
|
||||
#if (!GDB_MULTI_ARCH) && !defined (SIGTRAMP_END_P)
|
||||
#define SIGTRAMP_END_P() (0)
|
||||
#endif
|
||||
|
||||
extern int gdbarch_sigtramp_end_p (struct gdbarch *gdbarch);
|
||||
#if (GDB_MULTI_ARCH > GDB_MULTI_ARCH_PARTIAL) && defined (SIGTRAMP_END_P)
|
||||
#error "Non multi-arch definition of SIGTRAMP_END"
|
||||
#endif
|
||||
#if (GDB_MULTI_ARCH > GDB_MULTI_ARCH_PARTIAL) || !defined (SIGTRAMP_END_P)
|
||||
#define SIGTRAMP_END_P() (gdbarch_sigtramp_end_p (current_gdbarch))
|
||||
#endif
|
||||
|
||||
/* Default (function) for non- multi-arch platforms. */
|
||||
#if (!GDB_MULTI_ARCH) && !defined (SIGTRAMP_END)
|
||||
#define SIGTRAMP_END(pc) (internal_error (__FILE__, __LINE__, "SIGTRAMP_END"), 0)
|
||||
#endif
|
||||
|
||||
typedef CORE_ADDR (gdbarch_sigtramp_end_ftype) (CORE_ADDR pc);
|
||||
extern CORE_ADDR gdbarch_sigtramp_end (struct gdbarch *gdbarch, CORE_ADDR pc);
|
||||
extern void set_gdbarch_sigtramp_end (struct gdbarch *gdbarch, gdbarch_sigtramp_end_ftype *sigtramp_end);
|
||||
|
@ -637,7 +637,7 @@ f:2:IN_SOLIB_RETURN_TRAMPOLINE:int:in_solib_return_trampoline:CORE_ADDR pc, char
|
||||
# does not.
|
||||
f:2:PC_IN_SIGTRAMP:int:pc_in_sigtramp:CORE_ADDR pc, char *name:pc, name:::legacy_pc_in_sigtramp::0
|
||||
F:2:SIGTRAMP_START:CORE_ADDR:sigtramp_start:CORE_ADDR pc:pc
|
||||
f:2:SIGTRAMP_END:CORE_ADDR:sigtramp_end:CORE_ADDR pc:pc:::::0
|
||||
F::SIGTRAMP_END:CORE_ADDR:sigtramp_end:CORE_ADDR pc:pc
|
||||
# A target might have problems with watchpoints as soon as the stack
|
||||
# frame of the current function has been destroyed. This mostly happens
|
||||
# as the first action in a funtion's epilogue. in_function_epilogue_p()
|
||||
|
Loading…
Reference in New Issue
Block a user