diff options
author | Andrew Cagney <cagney@redhat.com> | 2004-03-23 14:48:00 +0000 |
---|---|---|
committer | Andrew Cagney <cagney@redhat.com> | 2004-03-23 14:48:00 +0000 |
commit | f561f0263002fbd950e66676a666ee5f46483841 (patch) | |
tree | e5ba26e96b5a7c88e27b0d34e3679338a3201bd7 | |
parent | d2259dd367eabe17588fcc008cdce792be2ec971 (diff) | |
download | gdb-f561f0263002fbd950e66676a666ee5f46483841.zip gdb-f561f0263002fbd950e66676a666ee5f46483841.tar.gz gdb-f561f0263002fbd950e66676a666ee5f46483841.tar.bz2 |
2004-03-23 Andrew Cagney <cagney@redhat.com>
* gdbarch.sh (PC_IN_SIGTRAMP): Change to a function with
predicate, deprecate.
* gdbarch.h, gdbarch.c: Re-generate.
* alpha-linux-tdep.c (alpha_linux_init_abi): Update.
* alpha-osf1-tdep.c (alpha_osf1_init_abi): Update.
* alpha-tdep.c (alpha_sigtramp_frame_sniffer): Update.
* alphafbsd-tdep.c (alphafbsd_init_abi): Update.
* alphanbsd-tdep.c (alphanbsd_init_abi): Update.
* amd64-linux-tdep.c (amd64_linux_init_abi): Update.
* amd64-tdep.c (amd64_sigtramp_frame_sniffer): Update.
* amd64nbsd-tdep.c (amd64nbsd_init_abi): Update.
* amd64obsd-tdep.c (amd64obsd_init_abi): Update.
* arm-tdep.c (arm_sigtramp_unwind_sniffer): Update.
* blockframe.c (find_pc_partial_function): Update.
* breakpoint.c (bpstat_what): Update.
* frame.c (frame_type_from_pc, legacy_get_prev_frame): Update.
* frv-linux-tdep.c (frv_linux_init_abi): Update.
* frv-tdep.c (frv_sigtramp_frame_sniffer): Update.
* hppa-hpux-tdep.c (hppa_hpux_init_abi): Update.
* i386-interix-tdep.c (i386_interix_init_abi): Update.
* i386-linux-tdep.c (i386_linux_init_abi): Update.
* i386-nto-tdep.c (i386nto_init_abi): Update.
* i386-sol2-tdep.c (i386_sol2_init_abi): Update.
* i386-tdep.c (i386_sigtramp_frame_sniffer)
(i386_svr4_init_abi, i386_go32_init_abi, i386_gdbarch_init): Update.
* i386bsd-tdep.c (i386bsd_init_abi): Update.
* i386nbsd-tdep.c (i386nbsd_init_abi): Update.
* i386obsd-tdep.c (i386obsd_init_abi): Update.
* ia64-tdep.c (ia64_sigtramp_frame_sniffer): Update.
* infrun.c (pc_in_sigtramp): Update.
* m68k-tdep.c (m68k_sigtramp_frame_sniffer): Update.
* m68klinux-tdep.c (m68k_linux_init_abi): Update.
* mips-tdep.c (mips_gdbarch_init): Update.
* mipsnbsd-tdep.c (mipsnbsd_init_abi): Update.
* ppc-linux-tdep.c: Update comment.
* ppcnbsd-tdep.c (ppcnbsd_init_abi): Update.
* shnbsd-tdep.c (shnbsd_init_abi): Update.
* sparc-linux-tdep.c (sparc32_linux_init_abi): Update.
* sparc-sol2-tdep.c (sparc32_sol2_init_abi): Update.
* sparc64-sol2-tdep.c (sparc64_sol2_init_abi): Update.
* sparc64fbsd-tdep.c (sparc64fbsd_init_abi): Update.
* sparc64nbsd-tdep.c (sparc64nbsd_init_abi): Update.
* sparc64obsd-tdep.c (sparc64obsd_init_abi): Update.
* sparcnbsd-tdep.c (sparc32nbsd_init_abi): Update.
* sparcobsd-tdep.c (sparc32obsd_init_abi): Update.
Index: doc/ChangeLog
2004-03-23 Andrew Cagney <cagney@redhat.com>
* gdbint.texinfo (Target Architecture Definition): Deprecate
references to PC_IN_SIGTRAMP.
48 files changed, 199 insertions, 106 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 9fd43ae..d717dd4 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,5 +1,53 @@ 2004-03-23 Andrew Cagney <cagney@redhat.com> + * gdbarch.sh (PC_IN_SIGTRAMP): Change to a function with + predicate, deprecate. + * gdbarch.h, gdbarch.c: Re-generate. + * alpha-linux-tdep.c (alpha_linux_init_abi): Update. + * alpha-osf1-tdep.c (alpha_osf1_init_abi): Update. + * alpha-tdep.c (alpha_sigtramp_frame_sniffer): Update. + * alphafbsd-tdep.c (alphafbsd_init_abi): Update. + * alphanbsd-tdep.c (alphanbsd_init_abi): Update. + * amd64-linux-tdep.c (amd64_linux_init_abi): Update. + * amd64-tdep.c (amd64_sigtramp_frame_sniffer): Update. + * amd64nbsd-tdep.c (amd64nbsd_init_abi): Update. + * amd64obsd-tdep.c (amd64obsd_init_abi): Update. + * arm-tdep.c (arm_sigtramp_unwind_sniffer): Update. + * blockframe.c (find_pc_partial_function): Update. + * breakpoint.c (bpstat_what): Update. + * frame.c (frame_type_from_pc, legacy_get_prev_frame): Update. + * frv-linux-tdep.c (frv_linux_init_abi): Update. + * frv-tdep.c (frv_sigtramp_frame_sniffer): Update. + * hppa-hpux-tdep.c (hppa_hpux_init_abi): Update. + * i386-interix-tdep.c (i386_interix_init_abi): Update. + * i386-linux-tdep.c (i386_linux_init_abi): Update. + * i386-nto-tdep.c (i386nto_init_abi): Update. + * i386-sol2-tdep.c (i386_sol2_init_abi): Update. + * i386-tdep.c (i386_sigtramp_frame_sniffer) + (i386_svr4_init_abi, i386_go32_init_abi, i386_gdbarch_init): Update. + * i386bsd-tdep.c (i386bsd_init_abi): Update. + * i386nbsd-tdep.c (i386nbsd_init_abi): Update. + * i386obsd-tdep.c (i386obsd_init_abi): Update. + * ia64-tdep.c (ia64_sigtramp_frame_sniffer): Update. + * infrun.c (pc_in_sigtramp): Update. + * m68k-tdep.c (m68k_sigtramp_frame_sniffer): Update. + * m68klinux-tdep.c (m68k_linux_init_abi): Update. + * mips-tdep.c (mips_gdbarch_init): Update. + * mipsnbsd-tdep.c (mipsnbsd_init_abi): Update. + * ppc-linux-tdep.c: Update comment. + * ppcnbsd-tdep.c (ppcnbsd_init_abi): Update. + * shnbsd-tdep.c (shnbsd_init_abi): Update. + * sparc-linux-tdep.c (sparc32_linux_init_abi): Update. + * sparc-sol2-tdep.c (sparc32_sol2_init_abi): Update. + * sparc64-sol2-tdep.c (sparc64_sol2_init_abi): Update. + * sparc64fbsd-tdep.c (sparc64fbsd_init_abi): Update. + * sparc64nbsd-tdep.c (sparc64nbsd_init_abi): Update. + * sparc64obsd-tdep.c (sparc64obsd_init_abi): Update. + * sparcnbsd-tdep.c (sparc32nbsd_init_abi): Update. + * sparcobsd-tdep.c (sparc32obsd_init_abi): Update. + +2004-03-23 Andrew Cagney <cagney@redhat.com> + * tramp-frame.h, tramp-frame.h: New files. * Makefile.in (SFILES, tramp_frame_h, COMMON_OBS, tramp-frame.o): Update rules to include "tramp-frame.h" and "tramp-frame.c". diff --git a/gdb/alpha-linux-tdep.c b/gdb/alpha-linux-tdep.c index de53b3e..344195e 100644 --- a/gdb/alpha-linux-tdep.c +++ b/gdb/alpha-linux-tdep.c @@ -134,7 +134,7 @@ alpha_linux_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch) /* Hook into the MDEBUG frame unwinder. */ alpha_mdebug_init_abi (info, gdbarch); - set_gdbarch_pc_in_sigtramp (gdbarch, alpha_linux_pc_in_sigtramp); + set_gdbarch_deprecated_pc_in_sigtramp (gdbarch, alpha_linux_pc_in_sigtramp); tdep = gdbarch_tdep (gdbarch); tdep->dynamic_sigtramp_offset = alpha_linux_sigtramp_offset; diff --git a/gdb/alpha-osf1-tdep.c b/gdb/alpha-osf1-tdep.c index c1011c5..1fc9889 100644 --- a/gdb/alpha-osf1-tdep.c +++ b/gdb/alpha-osf1-tdep.c @@ -54,7 +54,7 @@ alpha_osf1_init_abi (struct gdbarch_info info, /* Hook into the MDEBUG frame unwinder. */ alpha_mdebug_init_abi (info, gdbarch); - set_gdbarch_pc_in_sigtramp (gdbarch, alpha_osf1_pc_in_sigtramp); + set_gdbarch_deprecated_pc_in_sigtramp (gdbarch, alpha_osf1_pc_in_sigtramp); /* The next/step support via procfs on OSF1 is broken when running on multi-processor machines. We need to use software single stepping instead. */ diff --git a/gdb/alpha-tdep.c b/gdb/alpha-tdep.c index 44b85d1..8777afc 100644 --- a/gdb/alpha-tdep.c +++ b/gdb/alpha-tdep.c @@ -870,7 +870,7 @@ alpha_sigtramp_frame_sniffer (struct frame_info *next_frame) /* Otherwise we should be in a signal frame. */ find_pc_partial_function (pc, &name, NULL, NULL); - if (PC_IN_SIGTRAMP (pc, name)) + if (DEPRECATED_PC_IN_SIGTRAMP (pc, name)) return &alpha_sigtramp_frame_unwind; return NULL; diff --git a/gdb/alphafbsd-tdep.c b/gdb/alphafbsd-tdep.c index cc5f0e0..77bd6ea 100644 --- a/gdb/alphafbsd-tdep.c +++ b/gdb/alphafbsd-tdep.c @@ -100,7 +100,7 @@ alphafbsd_init_abi (struct gdbarch_info info, set_gdbarch_use_struct_convention (gdbarch, alphafbsd_use_struct_convention); - set_gdbarch_pc_in_sigtramp (gdbarch, alphafbsd_pc_in_sigtramp); + set_gdbarch_deprecated_pc_in_sigtramp (gdbarch, alphafbsd_pc_in_sigtramp); tdep->dynamic_sigtramp_offset = alphafbsd_sigtramp_offset; tdep->sigcontext_addr = alphafbsd_sigcontext_addr; diff --git a/gdb/alphanbsd-tdep.c b/gdb/alphanbsd-tdep.c index 28d1bb5..6fe9252 100644 --- a/gdb/alphanbsd-tdep.c +++ b/gdb/alphanbsd-tdep.c @@ -205,7 +205,7 @@ alphanbsd_init_abi (struct gdbarch_info info, /* Hook into the MDEBUG frame unwinder. */ alpha_mdebug_init_abi (info, gdbarch); - set_gdbarch_pc_in_sigtramp (gdbarch, alphanbsd_pc_in_sigtramp); + set_gdbarch_deprecated_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. */ diff --git a/gdb/amd64-linux-tdep.c b/gdb/amd64-linux-tdep.c index edf3794..843a84e 100644 --- a/gdb/amd64-linux-tdep.c +++ b/gdb/amd64-linux-tdep.c @@ -203,7 +203,7 @@ amd64_linux_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch) amd64_init_abi (info, gdbarch); - set_gdbarch_pc_in_sigtramp (gdbarch, amd64_linux_pc_in_sigtramp); + set_gdbarch_deprecated_pc_in_sigtramp (gdbarch, amd64_linux_pc_in_sigtramp); tdep->sigcontext_addr = amd64_linux_sigcontext_addr; tdep->sc_reg_offset = amd64_linux_sc_reg_offset; tdep->sc_num_regs = ARRAY_SIZE (amd64_linux_sc_reg_offset); diff --git a/gdb/amd64-tdep.c b/gdb/amd64-tdep.c index fb544c4..6d29163 100644 --- a/gdb/amd64-tdep.c +++ b/gdb/amd64-tdep.c @@ -968,7 +968,7 @@ amd64_sigtramp_frame_sniffer (struct frame_info *next_frame) char *name; find_pc_partial_function (pc, &name, NULL, NULL); - if (PC_IN_SIGTRAMP (pc, name)) + if (DEPRECATED_PC_IN_SIGTRAMP (pc, name)) { gdb_assert (gdbarch_tdep (current_gdbarch)->sigcontext_addr); diff --git a/gdb/amd64nbsd-tdep.c b/gdb/amd64nbsd-tdep.c index a04e04f..cb413f0 100644 --- a/gdb/amd64nbsd-tdep.c +++ b/gdb/amd64nbsd-tdep.c @@ -98,7 +98,7 @@ amd64nbsd_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch) tdep->jb_pc_offset = 7 * 8; /* NetBSD has its own convention for signal trampolines. */ - set_gdbarch_pc_in_sigtramp (gdbarch, nbsd_pc_in_sigtramp); + set_gdbarch_deprecated_pc_in_sigtramp (gdbarch, nbsd_pc_in_sigtramp); tdep->sigcontext_addr = amd64nbsd_sigcontext_addr; /* Initialize the array with register offsets in `struct diff --git a/gdb/amd64obsd-tdep.c b/gdb/amd64obsd-tdep.c index 198c87e..70a9da8 100644 --- a/gdb/amd64obsd-tdep.c +++ b/gdb/amd64obsd-tdep.c @@ -195,7 +195,7 @@ amd64obsd_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch) tdep->jb_pc_offset = 7 * 8; - set_gdbarch_pc_in_sigtramp (gdbarch, amd64obsd_pc_in_sigtramp); + set_gdbarch_deprecated_pc_in_sigtramp (gdbarch, amd64obsd_pc_in_sigtramp); tdep->sigcontext_addr = amd64obsd_sigcontext_addr; tdep->sc_reg_offset = amd64obsd_sc_reg_offset; tdep->sc_num_regs = ARRAY_SIZE (amd64obsd_sc_reg_offset); diff --git a/gdb/arm-tdep.c b/gdb/arm-tdep.c index bf54a31..91a200d 100644 --- a/gdb/arm-tdep.c +++ b/gdb/arm-tdep.c @@ -1144,13 +1144,13 @@ struct frame_unwind arm_sigtramp_unwind = { static const struct frame_unwind * arm_sigtramp_unwind_sniffer (struct frame_info *next_frame) { - /* Note: If an ARM PC_IN_SIGTRAMP method ever needs to compare - against the name of the function, the code below will have to be - changed to first fetch the name of the function and then pass - this name to PC_IN_SIGTRAMP. */ + /* Note: If an ARM DEPRECATED_PC_IN_SIGTRAMP method ever needs to + compare against the name of the function, the code below will + have to be changed to first fetch the name of the function and + then pass this name to DEPRECATED_PC_IN_SIGTRAMP. */ if (SIGCONTEXT_REGISTER_ADDRESS_P () - && PC_IN_SIGTRAMP (frame_pc_unwind (next_frame), (char *) 0)) + && DEPRECATED_PC_IN_SIGTRAMP (frame_pc_unwind (next_frame), (char *) 0)) return &arm_sigtramp_unwind; return NULL; diff --git a/gdb/blockframe.c b/gdb/blockframe.c index 1ff4685..d119f93 100644 --- a/gdb/blockframe.c +++ b/gdb/blockframe.c @@ -382,7 +382,8 @@ find_pc_partial_function (CORE_ADDR pc, char **name, CORE_ADDR *address, /* If sigtramp is in the u area, it counts as a function (especially important for step_1). */ - if (SIGTRAMP_START_P () && PC_IN_SIGTRAMP (mapped_pc, (char *) NULL)) + if (SIGTRAMP_START_P () + && DEPRECATED_PC_IN_SIGTRAMP (mapped_pc, (char *) NULL)) { cache_pc_function_low = SIGTRAMP_START (mapped_pc); cache_pc_function_high = SIGTRAMP_END (mapped_pc); diff --git a/gdb/breakpoint.c b/gdb/breakpoint.c index 9a21f09..61b7225 100644 --- a/gdb/breakpoint.c +++ b/gdb/breakpoint.c @@ -3017,7 +3017,8 @@ bpstat_what (bpstat bs) /* step_resume entries: a step resume breakpoint overrides another breakpoint of signal handling (see comment in wait_for_inferior - at first PC_IN_SIGTRAMP where we set the step_resume breakpoint). */ + at first DEPRECATED_PC_IN_SIGTRAMP where we set the step_resume + breakpoint). */ /* We handle the through_sigtramp_breakpoint the same way; having both one of those and a step_resume_breakpoint is probably very rare (?). */ diff --git a/gdb/doc/ChangeLog b/gdb/doc/ChangeLog index 6d70a7e..f2cf87e 100644 --- a/gdb/doc/ChangeLog +++ b/gdb/doc/ChangeLog @@ -1,3 +1,8 @@ +2004-03-23 Andrew Cagney <cagney@redhat.com> + + * gdbint.texinfo (Target Architecture Definition): Deprecate + references to PC_IN_SIGTRAMP. + 2004-03-19 Andrew Cagney <cagney@redhat.com> * gdbint.texinfo (Target Architecture Definition): Delete diff --git a/gdb/doc/gdbint.texinfo b/gdb/doc/gdbint.texinfo index b66fbd9..54ee579 100644 --- a/gdb/doc/gdbint.texinfo +++ b/gdb/doc/gdbint.texinfo @@ -3636,8 +3636,8 @@ them. @findex PCC_SOL_BROKEN (Used only in the Convex target.) -@item PC_IN_SIGTRAMP (@var{pc}, @var{name}) -@findex PC_IN_SIGTRAMP +@item DEPRECATED_PC_IN_SIGTRAMP (@var{pc}, @var{name}) +@findex DEPRECATED_PC_IN_SIGTRAMP @cindex sigtramp The @dfn{sigtramp} is a routine that the kernel calls (which then calls the signal handler). On most machines it is a library routine that is diff --git a/gdb/frame.c b/gdb/frame.c index e5f4168..f6aa5cf 100644 --- a/gdb/frame.c +++ b/gdb/frame.c @@ -1161,7 +1161,7 @@ frame_type_from_pc (CORE_ADDR pc) { char *name; find_pc_partial_function (pc, &name, NULL, NULL); - if (PC_IN_SIGTRAMP (pc, name)) + if (DEPRECATED_PC_IN_SIGTRAMP (pc, name)) return SIGTRAMP_FRAME; else return NORMAL_FRAME; @@ -1696,7 +1696,7 @@ legacy_get_prev_frame (struct frame_info *this_frame) 22). */ char *name; find_pc_partial_function (get_frame_pc (prev), &name, NULL, NULL); - if (PC_IN_SIGTRAMP (get_frame_pc (prev), name)) + if (DEPRECATED_PC_IN_SIGTRAMP (get_frame_pc (prev), name)) prev->type = SIGTRAMP_FRAME; /* FIXME: cagney/2002-11-11: Leave prev->type alone. Some architectures are forcing the frame's type in INIT so we diff --git a/gdb/frame.h b/gdb/frame.h index 927403a..028167d 100644 --- a/gdb/frame.h +++ b/gdb/frame.h @@ -360,7 +360,7 @@ extern enum frame_type get_frame_type (struct frame_info *); /* FIXME: cagney/2002-11-10: Some targets want to directly mark a frame as being of a specific type. This shouldn't be necessary. - PC_IN_SIGTRAMP() indicates a SIGTRAMP_FRAME and + DEPRECATED_PC_IN_SIGTRAMP() indicates a SIGTRAMP_FRAME and DEPRECATED_PC_IN_CALL_DUMMY() indicates a DUMMY_FRAME. I suspect the real problem here is that get_prev_frame() only sets initialized after DEPRECATED_INIT_EXTRA_FRAME_INFO as been called. diff --git a/gdb/frv-linux-tdep.c b/gdb/frv-linux-tdep.c index 8588cb1..e862625 100644 --- a/gdb/frv-linux-tdep.c +++ b/gdb/frv-linux-tdep.c @@ -240,7 +240,7 @@ frv_linux_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch) address points to a bit of code on the stack. This function is used to identify this bit of code as a signal trampoline in order to support backtracing through calls to signal handlers. */ - set_gdbarch_pc_in_sigtramp (gdbarch, frv_linux_pc_in_sigtramp); + set_gdbarch_deprecated_pc_in_sigtramp (gdbarch, frv_linux_pc_in_sigtramp); frv_set_sigcontext_reg_addr (gdbarch, frv_linux_sigcontext_reg_addr); } diff --git a/gdb/frv-tdep.c b/gdb/frv-tdep.c index 48d241c..8028e46 100644 --- a/gdb/frv-tdep.c +++ b/gdb/frv-tdep.c @@ -1448,7 +1448,7 @@ frv_sigtramp_frame_sniffer (struct frame_info *next_frame) return NULL; find_pc_partial_function (pc, &name, NULL, NULL); - if (PC_IN_SIGTRAMP (pc, name)) + if (DEPRECATED_PC_IN_SIGTRAMP (pc, name)) return &frv_sigtramp_frame_unwind; return NULL; diff --git a/gdb/gdbarch.c b/gdb/gdbarch.c index 46dc08f..0e8f1fe 100644 --- a/gdb/gdbarch.c +++ b/gdb/gdbarch.c @@ -245,7 +245,7 @@ struct gdbarch gdbarch_skip_solib_resolver_ftype *skip_solib_resolver; gdbarch_in_solib_call_trampoline_ftype *in_solib_call_trampoline; gdbarch_in_solib_return_trampoline_ftype *in_solib_return_trampoline; - gdbarch_pc_in_sigtramp_ftype *pc_in_sigtramp; + gdbarch_deprecated_pc_in_sigtramp_ftype *deprecated_pc_in_sigtramp; gdbarch_sigtramp_start_ftype *sigtramp_start; gdbarch_sigtramp_end_ftype *sigtramp_end; gdbarch_in_function_epilogue_p_ftype *in_function_epilogue_p; @@ -412,7 +412,7 @@ struct gdbarch startup_gdbarch = generic_skip_solib_resolver, /* skip_solib_resolver */ 0, /* in_solib_call_trampoline */ 0, /* in_solib_return_trampoline */ - 0, /* pc_in_sigtramp */ + 0, /* deprecated_pc_in_sigtramp */ 0, /* sigtramp_start */ 0, /* sigtramp_end */ generic_in_function_epilogue_p, /* in_function_epilogue_p */ @@ -522,7 +522,7 @@ gdbarch_alloc (const struct gdbarch_info *info, current_gdbarch->skip_solib_resolver = generic_skip_solib_resolver; current_gdbarch->in_solib_call_trampoline = generic_in_solib_call_trampoline; current_gdbarch->in_solib_return_trampoline = generic_in_solib_return_trampoline; - current_gdbarch->pc_in_sigtramp = legacy_pc_in_sigtramp; + current_gdbarch->deprecated_pc_in_sigtramp = legacy_pc_in_sigtramp; current_gdbarch->in_function_epilogue_p = generic_in_function_epilogue_p; current_gdbarch->construct_inferior_arguments = construct_inferior_arguments; current_gdbarch->elf_make_msymbol_special = default_elf_make_msymbol_special; @@ -720,7 +720,7 @@ verify_gdbarch (struct gdbarch *current_gdbarch) /* Skip verify of skip_solib_resolver, invalid_p == 0 */ /* Skip verify of in_solib_call_trampoline, invalid_p == 0 */ /* Skip verify of in_solib_return_trampoline, invalid_p == 0 */ - /* Skip verify of pc_in_sigtramp, invalid_p == 0 */ + /* Skip verify of deprecated_pc_in_sigtramp, has predicate */ /* Skip verify of sigtramp_start, has predicate */ /* Skip verify of sigtramp_end, has predicate */ /* Skip verify of in_function_epilogue_p, invalid_p == 0 */ @@ -1340,6 +1340,25 @@ gdbarch_dump (struct gdbarch *current_gdbarch, struct ui_file *file) (long) current_gdbarch->deprecated_pc_in_call_dummy /*DEPRECATED_PC_IN_CALL_DUMMY ()*/); #endif +#ifdef DEPRECATED_PC_IN_SIGTRAMP_P + fprintf_unfiltered (file, + "gdbarch_dump: %s # %s\n", + "DEPRECATED_PC_IN_SIGTRAMP_P()", + XSTRING (DEPRECATED_PC_IN_SIGTRAMP_P ())); + fprintf_unfiltered (file, + "gdbarch_dump: DEPRECATED_PC_IN_SIGTRAMP_P() = %d\n", + DEPRECATED_PC_IN_SIGTRAMP_P ()); +#endif +#ifdef DEPRECATED_PC_IN_SIGTRAMP + fprintf_unfiltered (file, + "gdbarch_dump: %s # %s\n", + "DEPRECATED_PC_IN_SIGTRAMP(pc, name)", + XSTRING (DEPRECATED_PC_IN_SIGTRAMP (pc, name))); + fprintf_unfiltered (file, + "gdbarch_dump: DEPRECATED_PC_IN_SIGTRAMP = <0x%08lx>\n", + (long) current_gdbarch->deprecated_pc_in_sigtramp + /*DEPRECATED_PC_IN_SIGTRAMP ()*/); +#endif #ifdef DEPRECATED_POP_FRAME_P fprintf_unfiltered (file, "gdbarch_dump: %s # %s\n", @@ -1935,16 +1954,6 @@ gdbarch_dump (struct gdbarch *current_gdbarch, struct ui_file *file) "gdbarch_dump: PARM_BOUNDARY = %d\n", PARM_BOUNDARY); #endif -#ifdef PC_IN_SIGTRAMP - fprintf_unfiltered (file, - "gdbarch_dump: %s # %s\n", - "PC_IN_SIGTRAMP(pc, name)", - XSTRING (PC_IN_SIGTRAMP (pc, name))); - fprintf_unfiltered (file, - "gdbarch_dump: PC_IN_SIGTRAMP = <0x%08lx>\n", - (long) current_gdbarch->pc_in_sigtramp - /*PC_IN_SIGTRAMP ()*/); -#endif #ifdef PC_REGNUM fprintf_unfiltered (file, "gdbarch_dump: PC_REGNUM # %s\n", @@ -5054,20 +5063,28 @@ set_gdbarch_in_solib_return_trampoline (struct gdbarch *gdbarch, } int -gdbarch_pc_in_sigtramp (struct gdbarch *gdbarch, CORE_ADDR pc, char *name) +gdbarch_deprecated_pc_in_sigtramp_p (struct gdbarch *gdbarch) +{ + gdb_assert (gdbarch != NULL); + return gdbarch->deprecated_pc_in_sigtramp != legacy_pc_in_sigtramp; +} + +int +gdbarch_deprecated_pc_in_sigtramp (struct gdbarch *gdbarch, CORE_ADDR pc, char *name) { gdb_assert (gdbarch != NULL); - gdb_assert (gdbarch->pc_in_sigtramp != NULL); + gdb_assert (gdbarch->deprecated_pc_in_sigtramp != NULL); + /* Do not check predicate: gdbarch->deprecated_pc_in_sigtramp != legacy_pc_in_sigtramp, allow call. */ if (gdbarch_debug >= 2) - fprintf_unfiltered (gdb_stdlog, "gdbarch_pc_in_sigtramp called\n"); - return gdbarch->pc_in_sigtramp (pc, name); + fprintf_unfiltered (gdb_stdlog, "gdbarch_deprecated_pc_in_sigtramp called\n"); + return gdbarch->deprecated_pc_in_sigtramp (pc, name); } void -set_gdbarch_pc_in_sigtramp (struct gdbarch *gdbarch, - gdbarch_pc_in_sigtramp_ftype pc_in_sigtramp) +set_gdbarch_deprecated_pc_in_sigtramp (struct gdbarch *gdbarch, + gdbarch_deprecated_pc_in_sigtramp_ftype deprecated_pc_in_sigtramp) { - gdbarch->pc_in_sigtramp = pc_in_sigtramp; + gdbarch->deprecated_pc_in_sigtramp = deprecated_pc_in_sigtramp; } int diff --git a/gdb/gdbarch.h b/gdb/gdbarch.h index 2280cfa..c829586 100644 --- a/gdb/gdbarch.h +++ b/gdb/gdbarch.h @@ -2122,22 +2122,40 @@ extern void set_gdbarch_in_solib_return_trampoline (struct gdbarch *gdbarch, gdb no name, assume we are not in sigtramp). FIXME: cagney/2002-04-21: The function find_pc_partial_function - calls find_pc_sect_partial_function() which calls PC_IN_SIGTRAMP. - This means PC_IN_SIGTRAMP function can't be implemented by doing its - own local NAME lookup. + calls find_pc_sect_partial_function() which calls + DEPRECATED_PC_IN_SIGTRAMP. This means DEPRECATED_PC_IN_SIGTRAMP + function can't be implemented by doing its own local NAME lookup. - FIXME: cagney/2002-04-21: PC_IN_SIGTRAMP is something of a mess. - Some code also depends on SIGTRAMP_START and SIGTRAMP_END but other - does not. */ - -typedef int (gdbarch_pc_in_sigtramp_ftype) (CORE_ADDR pc, char *name); -extern int gdbarch_pc_in_sigtramp (struct gdbarch *gdbarch, CORE_ADDR pc, char *name); -extern void set_gdbarch_pc_in_sigtramp (struct gdbarch *gdbarch, gdbarch_pc_in_sigtramp_ftype *pc_in_sigtramp); -#if (GDB_MULTI_ARCH > GDB_MULTI_ARCH_PARTIAL) && defined (PC_IN_SIGTRAMP) -#error "Non multi-arch definition of PC_IN_SIGTRAMP" -#endif -#if !defined (PC_IN_SIGTRAMP) -#define PC_IN_SIGTRAMP(pc, name) (gdbarch_pc_in_sigtramp (current_gdbarch, pc, name)) + FIXME: cagney/2002-04-21: DEPRECATED_PC_IN_SIGTRAMP is something of + a mess. Some code also depends on SIGTRAMP_START and SIGTRAMP_END + but other does not. + + NOTE: cagney/2004-03-16: DEPRECATED_PC_IN_SIGTRAMP has been made + obsolete by signal trampoline frame unwind sniffers. */ + +#if defined (DEPRECATED_PC_IN_SIGTRAMP) +/* Legacy for systems yet to multi-arch DEPRECATED_PC_IN_SIGTRAMP */ +#if !defined (DEPRECATED_PC_IN_SIGTRAMP_P) +#define DEPRECATED_PC_IN_SIGTRAMP_P() (1) +#endif +#endif + +extern int gdbarch_deprecated_pc_in_sigtramp_p (struct gdbarch *gdbarch); +#if (GDB_MULTI_ARCH > GDB_MULTI_ARCH_PARTIAL) && defined (DEPRECATED_PC_IN_SIGTRAMP_P) +#error "Non multi-arch definition of DEPRECATED_PC_IN_SIGTRAMP" +#endif +#if (GDB_MULTI_ARCH > GDB_MULTI_ARCH_PARTIAL) || !defined (DEPRECATED_PC_IN_SIGTRAMP_P) +#define DEPRECATED_PC_IN_SIGTRAMP_P() (gdbarch_deprecated_pc_in_sigtramp_p (current_gdbarch)) +#endif + +typedef int (gdbarch_deprecated_pc_in_sigtramp_ftype) (CORE_ADDR pc, char *name); +extern int gdbarch_deprecated_pc_in_sigtramp (struct gdbarch *gdbarch, CORE_ADDR pc, char *name); +extern void set_gdbarch_deprecated_pc_in_sigtramp (struct gdbarch *gdbarch, gdbarch_deprecated_pc_in_sigtramp_ftype *deprecated_pc_in_sigtramp); +#if (GDB_MULTI_ARCH > GDB_MULTI_ARCH_PARTIAL) && defined (DEPRECATED_PC_IN_SIGTRAMP) +#error "Non multi-arch definition of DEPRECATED_PC_IN_SIGTRAMP" +#endif +#if !defined (DEPRECATED_PC_IN_SIGTRAMP) +#define DEPRECATED_PC_IN_SIGTRAMP(pc, name) (gdbarch_deprecated_pc_in_sigtramp (current_gdbarch, pc, name)) #endif #if defined (SIGTRAMP_START) diff --git a/gdb/gdbarch.sh b/gdb/gdbarch.sh index cde5571..64886b5 100755 --- a/gdb/gdbarch.sh +++ b/gdb/gdbarch.sh @@ -736,14 +736,17 @@ f:2:IN_SOLIB_RETURN_TRAMPOLINE:int:in_solib_return_trampoline:CORE_ADDR pc, char # no name, assume we are not in sigtramp). # # FIXME: cagney/2002-04-21: The function find_pc_partial_function -# calls find_pc_sect_partial_function() which calls PC_IN_SIGTRAMP. -# This means PC_IN_SIGTRAMP function can't be implemented by doing its -# own local NAME lookup. +# calls find_pc_sect_partial_function() which calls +# DEPRECATED_PC_IN_SIGTRAMP. This means DEPRECATED_PC_IN_SIGTRAMP +# function can't be implemented by doing its own local NAME lookup. # -# FIXME: cagney/2002-04-21: PC_IN_SIGTRAMP is something of a mess. -# Some code also depends on SIGTRAMP_START and SIGTRAMP_END but other -# does not. -f:2:PC_IN_SIGTRAMP:int:pc_in_sigtramp:CORE_ADDR pc, char *name:pc, name:::legacy_pc_in_sigtramp::0 +# FIXME: cagney/2002-04-21: DEPRECATED_PC_IN_SIGTRAMP is something of +# a mess. Some code also depends on SIGTRAMP_START and SIGTRAMP_END +# but other does not. +# +# NOTE: cagney/2004-03-16: DEPRECATED_PC_IN_SIGTRAMP has been made +# obsolete by signal trampoline frame unwind sniffers. +F::DEPRECATED_PC_IN_SIGTRAMP:int:deprecated_pc_in_sigtramp:CORE_ADDR pc, char *name:pc, name:::legacy_pc_in_sigtramp F:2:SIGTRAMP_START:CORE_ADDR:sigtramp_start:CORE_ADDR pc:pc F:2:SIGTRAMP_END:CORE_ADDR:sigtramp_end:CORE_ADDR pc:pc # A target might have problems with watchpoints as soon as the stack diff --git a/gdb/hppa-hpux-tdep.c b/gdb/hppa-hpux-tdep.c index f9757c9..9be842b 100644 --- a/gdb/hppa-hpux-tdep.c +++ b/gdb/hppa-hpux-tdep.c @@ -151,7 +151,7 @@ hppa64_hpux_frame_find_saved_regs_in_sigtramp (struct frame_info *fi, static void hppa_hpux_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch) { - set_gdbarch_pc_in_sigtramp (gdbarch, hppa_hpux_pc_in_sigtramp); + set_gdbarch_deprecated_pc_in_sigtramp (gdbarch, hppa_hpux_pc_in_sigtramp); } static void diff --git a/gdb/i386-interix-tdep.c b/gdb/i386-interix-tdep.c index 0d2af2f..02c3701 100644 --- a/gdb/i386-interix-tdep.c +++ b/gdb/i386-interix-tdep.c @@ -325,7 +325,7 @@ i386_interix_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch) tdep->struct_return = reg_struct_return; tdep->jb_pc_offset = jump_buffer_Eip_offset; - set_gdbarch_pc_in_sigtramp (gdbarch, i386_interix_pc_in_sigtramp); + set_gdbarch_deprecated_pc_in_sigtramp (gdbarch, i386_interix_pc_in_sigtramp); set_gdbarch_in_solib_call_trampoline (gdbarch, i386_interix_in_solib_call_trampoline); set_gdbarch_skip_trampoline_code (gdbarch, diff --git a/gdb/i386-linux-tdep.c b/gdb/i386-linux-tdep.c index da4c1e6..e177d59 100644 --- a/gdb/i386-linux-tdep.c +++ b/gdb/i386-linux-tdep.c @@ -87,9 +87,9 @@ i386_linux_register_reggroup_p (struct gdbarch *gdbarch, int regnum, It kind of sucks that we have to read memory from the process in order to identify a signal trampoline, but there doesn't seem to be - any other way. The PC_IN_SIGTRAMP macro in tm-linux.h arranges to - only call us if no function name could be identified, which should - be the case since the code is on the stack. + any other way. The DEPRECATED_PC_IN_SIGTRAMP macro in tm-linux.h + arranges to only call us if no function name could be identified, + which should be the case since the code is on the stack. Detection of signal trampolines for handlers that set the SA_RESTORER flag is in general not possible. Unfortunately this is @@ -402,7 +402,7 @@ i386_linux_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch) address points to a bit of code on the stack. This function is used to identify this bit of code as a signal trampoline in order to support backtracing through calls to signal handlers. */ - set_gdbarch_pc_in_sigtramp (gdbarch, i386_linux_pc_in_sigtramp); + set_gdbarch_deprecated_pc_in_sigtramp (gdbarch, i386_linux_pc_in_sigtramp); /* GNU/Linux uses SVR4-style shared libraries. */ set_solib_svr4_fetch_link_map_offsets diff --git a/gdb/i386-nto-tdep.c b/gdb/i386-nto-tdep.c index 6d2f492..69a945e 100644 --- a/gdb/i386-nto-tdep.c +++ b/gdb/i386-nto-tdep.c @@ -278,7 +278,7 @@ i386nto_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch) set_gdbarch_in_solib_call_trampoline (gdbarch, in_plt_section); set_gdbarch_skip_trampoline_code (gdbarch, find_solib_trampoline_target); - set_gdbarch_pc_in_sigtramp (gdbarch, i386nto_pc_in_sigtramp); + set_gdbarch_deprecated_pc_in_sigtramp (gdbarch, i386nto_pc_in_sigtramp); tdep->sigcontext_addr = i386nto_sigcontext_addr; tdep->sc_pc_offset = 56; tdep->sc_sp_offset = 68; diff --git a/gdb/i386-sol2-tdep.c b/gdb/i386-sol2-tdep.c index 0da32d5..96cd10d 100644 --- a/gdb/i386-sol2-tdep.c +++ b/gdb/i386-sol2-tdep.c @@ -90,7 +90,7 @@ i386_sol2_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch) tdep->sc_num_regs = tdep->gregset_num_regs; /* Signal trampolines are slightly different from SVR4. */ - set_gdbarch_pc_in_sigtramp (gdbarch, i386_sol2_pc_in_sigtramp); + set_gdbarch_deprecated_pc_in_sigtramp (gdbarch, i386_sol2_pc_in_sigtramp); } diff --git a/gdb/i386-tdep.c b/gdb/i386-tdep.c index e1ce81f..84c6818 100644 --- a/gdb/i386-tdep.c +++ b/gdb/i386-tdep.c @@ -1019,7 +1019,7 @@ i386_sigtramp_frame_sniffer (struct frame_info *next_frame) return NULL; find_pc_partial_function (pc, &name, NULL, NULL); - if (PC_IN_SIGTRAMP (pc, name)) + if (DEPRECATED_PC_IN_SIGTRAMP (pc, name)) return &i386_sigtramp_frame_unwind; return NULL; @@ -1785,7 +1785,7 @@ i386_svr4_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch) set_gdbarch_in_solib_call_trampoline (gdbarch, in_plt_section); set_gdbarch_skip_trampoline_code (gdbarch, find_solib_trampoline_target); - set_gdbarch_pc_in_sigtramp (gdbarch, i386_svr4_pc_in_sigtramp); + set_gdbarch_deprecated_pc_in_sigtramp (gdbarch, i386_svr4_pc_in_sigtramp); tdep->sigcontext_addr = i386_svr4_sigcontext_addr; tdep->sc_pc_offset = 36 + 14 * 4; tdep->sc_sp_offset = 36 + 17 * 4; @@ -1800,7 +1800,7 @@ i386_go32_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch) { struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch); - set_gdbarch_pc_in_sigtramp (gdbarch, i386_go32_pc_in_sigtramp); + set_gdbarch_deprecated_pc_in_sigtramp (gdbarch, i386_go32_pc_in_sigtramp); tdep->jb_pc_offset = 36; } @@ -1993,7 +1993,7 @@ i386_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches) set_gdbarch_decr_pc_after_break (gdbarch, 1); set_gdbarch_frame_args_skip (gdbarch, 8); - set_gdbarch_pc_in_sigtramp (gdbarch, i386_pc_in_sigtramp); + set_gdbarch_deprecated_pc_in_sigtramp (gdbarch, i386_pc_in_sigtramp); /* Wire in the MMX registers. */ set_gdbarch_num_pseudo_regs (gdbarch, i386_num_mmx_regs); diff --git a/gdb/i386bsd-tdep.c b/gdb/i386bsd-tdep.c index c23acb5..f20953b 100644 --- a/gdb/i386bsd-tdep.c +++ b/gdb/i386bsd-tdep.c @@ -112,7 +112,7 @@ i386bsd_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch) { struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch); - set_gdbarch_pc_in_sigtramp (gdbarch, i386bsd_pc_in_sigtramp); + set_gdbarch_deprecated_pc_in_sigtramp (gdbarch, i386bsd_pc_in_sigtramp); /* Allow the recognition of sigtramps as a function named <sigtramp>. */ set_gdbarch_sigtramp_start (gdbarch, i386bsd_sigtramp_start); diff --git a/gdb/i386nbsd-tdep.c b/gdb/i386nbsd-tdep.c index 3c5304e..23ab91b 100644 --- a/gdb/i386nbsd-tdep.c +++ b/gdb/i386nbsd-tdep.c @@ -225,7 +225,7 @@ i386nbsd_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch) tdep->sizeof_gregset = 16 * 4; /* NetBSD has different signal trampoline conventions. */ - set_gdbarch_pc_in_sigtramp (gdbarch, i386nbsd_pc_in_sigtramp); + set_gdbarch_deprecated_pc_in_sigtramp (gdbarch, i386nbsd_pc_in_sigtramp); /* FIXME: kettenis/20020906: We should probably provide NetBSD-specific versions of these functions if we want to recognize signal trampolines that live on the stack. */ diff --git a/gdb/i386obsd-tdep.c b/gdb/i386obsd-tdep.c index ada2222..cd6e37a 100644 --- a/gdb/i386obsd-tdep.c +++ b/gdb/i386obsd-tdep.c @@ -215,7 +215,7 @@ i386obsd_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch) /* OpenBSD uses a different memory layout. */ tdep->sigtramp_start = i386obsd_sigtramp_start_addr; tdep->sigtramp_end = i386obsd_sigtramp_end_addr; - set_gdbarch_pc_in_sigtramp (gdbarch, i386obsd_pc_in_sigtramp); + set_gdbarch_deprecated_pc_in_sigtramp (gdbarch, i386obsd_pc_in_sigtramp); set_gdbarch_sigtramp_start (gdbarch, i386obsd_sigtramp_start); set_gdbarch_sigtramp_end (gdbarch, i386obsd_sigtramp_end); diff --git a/gdb/ia64-tdep.c b/gdb/ia64-tdep.c index 278538c..8defe3b3 100644 --- a/gdb/ia64-tdep.c +++ b/gdb/ia64-tdep.c @@ -2048,7 +2048,7 @@ ia64_sigtramp_frame_sniffer (struct frame_info *next_frame) CORE_ADDR pc = frame_pc_unwind (next_frame); find_pc_partial_function (pc, &name, NULL, NULL); - if (PC_IN_SIGTRAMP (pc, name)) + if (DEPRECATED_PC_IN_SIGTRAMP (pc, name)) return &ia64_sigtramp_frame_unwind; return NULL; diff --git a/gdb/infrun.c b/gdb/infrun.c index dac9538..aaf6ac8 100644 --- a/gdb/infrun.c +++ b/gdb/infrun.c @@ -1203,8 +1203,8 @@ context_switch (struct execution_control_state *ecs) inferior_ptid = ecs->ptid; } -/* Wrapper for PC_IN_SIGTRAMP that takes care of the need to find the - function's name. +/* Wrapper for DEPRECATED_PC_IN_SIGTRAMP that takes care of the need + to find the function's name. In a classic example of "left hand VS right hand", "infrun.c" was trying to improve GDB's performance by caching the result of calls @@ -1233,7 +1233,7 @@ pc_in_sigtramp (CORE_ADDR pc) { char *name; find_pc_partial_function (pc, &name, NULL, NULL); - return PC_IN_SIGTRAMP (pc, name); + return DEPRECATED_PC_IN_SIGTRAMP (pc, name); } /* Handle the inferior event in the cases when we just stepped diff --git a/gdb/m68k-tdep.c b/gdb/m68k-tdep.c index a499005..7fceb8b 100644 --- a/gdb/m68k-tdep.c +++ b/gdb/m68k-tdep.c @@ -839,7 +839,7 @@ m68k_sigtramp_frame_sniffer (struct frame_info *next_frame) return NULL; find_pc_partial_function (pc, &name, NULL, NULL); - if (PC_IN_SIGTRAMP (pc, name)) + if (DEPRECATED_PC_IN_SIGTRAMP (pc, name)) return &m68k_sigtramp_frame_unwind; return NULL; diff --git a/gdb/m68klinux-tdep.c b/gdb/m68klinux-tdep.c index ed7e3ec..1091951 100644 --- a/gdb/m68klinux-tdep.c +++ b/gdb/m68klinux-tdep.c @@ -296,7 +296,7 @@ m68k_linux_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch) set_gdbarch_store_return_value (gdbarch, m68k_linux_store_return_value); set_gdbarch_deprecated_extract_struct_value_address (gdbarch, m68k_linux_extract_struct_value_address); - set_gdbarch_pc_in_sigtramp (gdbarch, m68k_linux_pc_in_sigtramp); + set_gdbarch_deprecated_pc_in_sigtramp (gdbarch, m68k_linux_pc_in_sigtramp); /* Shared library handling. */ set_gdbarch_in_solib_call_trampoline (gdbarch, in_plt_section); diff --git a/gdb/mips-tdep.c b/gdb/mips-tdep.c index 0543d65..563a7d8 100644 --- a/gdb/mips-tdep.c +++ b/gdb/mips-tdep.c @@ -5779,7 +5779,7 @@ mips_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches) set_gdbarch_register_type (gdbarch, mips_register_type); set_gdbarch_print_registers_info (gdbarch, mips_print_registers_info); - set_gdbarch_pc_in_sigtramp (gdbarch, mips_pc_in_sigtramp); + set_gdbarch_deprecated_pc_in_sigtramp (gdbarch, mips_pc_in_sigtramp); set_gdbarch_print_insn (gdbarch, gdb_print_insn_mips); diff --git a/gdb/mipsnbsd-tdep.c b/gdb/mipsnbsd-tdep.c index 157d2b4..114a374 100644 --- a/gdb/mipsnbsd-tdep.c +++ b/gdb/mipsnbsd-tdep.c @@ -345,7 +345,7 @@ static void mipsnbsd_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch) { - set_gdbarch_pc_in_sigtramp (gdbarch, mipsnbsd_pc_in_sigtramp); + set_gdbarch_deprecated_pc_in_sigtramp (gdbarch, mipsnbsd_pc_in_sigtramp); set_gdbarch_get_longjmp_target (gdbarch, mipsnbsd_get_longjmp_target); diff --git a/gdb/ppc-linux-tdep.c b/gdb/ppc-linux-tdep.c index 86271e2..ba2733e 100644 --- a/gdb/ppc-linux-tdep.c +++ b/gdb/ppc-linux-tdep.c @@ -114,8 +114,8 @@ static int ppc_linux_at_sigtramp_return_path (CORE_ADDR pc); /* Determine if pc is in a signal trampoline... Ha! That's not what this does at all. wait_for_inferior in - infrun.c calls PC_IN_SIGTRAMP in order to detect entry into a - signal trampoline just after delivery of a signal. But on + infrun.c calls DEPRECATED_PC_IN_SIGTRAMP in order to detect entry + into a signal trampoline just after delivery of a signal. But on GNU/Linux, signal trampolines are used for the return path only. The kernel sets things up so that the signal handler is called directly. @@ -150,11 +150,11 @@ static int ppc_linux_at_sigtramp_return_path (CORE_ADDR pc); first instruction long after the fact, just in case the observed behavior is ever fixed.) - PC_IN_SIGTRAMP is called from blockframe.c as well in order to set - the frame's type (if a SIGTRAMP_FRAME). Because of our strange - definition of in_sigtramp below, we can't rely on the frame's type - getting set correctly from within blockframe.c. This is why we - take pains to set it in init_extra_frame_info(). + DEPRECATED_PC_IN_SIGTRAMP is called from blockframe.c as well in + order to set the frame's type (if a SIGTRAMP_FRAME). Because of + our strange definition of in_sigtramp below, we can't rely on the + frame's type getting set correctly from within blockframe.c. This + is why we take pains to set it in init_extra_frame_info(). NOTE: cagney/2002-11-10: I suspect the real problem here is that the get_prev_frame() only initializes the frame's type after the diff --git a/gdb/ppcnbsd-tdep.c b/gdb/ppcnbsd-tdep.c index adc2a4f..7d27e83 100644 --- a/gdb/ppcnbsd-tdep.c +++ b/gdb/ppcnbsd-tdep.c @@ -231,7 +231,7 @@ static void ppcnbsd_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch) { - set_gdbarch_pc_in_sigtramp (gdbarch, ppcnbsd_pc_in_sigtramp); + set_gdbarch_deprecated_pc_in_sigtramp (gdbarch, ppcnbsd_pc_in_sigtramp); /* For NetBSD, this is an on again, off again thing. Some systems do use the broken struct convention, and some don't. */ set_gdbarch_return_value (gdbarch, ppcnbsd_return_value); diff --git a/gdb/shnbsd-tdep.c b/gdb/shnbsd-tdep.c index f915d2a..2b731ce 100644 --- a/gdb/shnbsd-tdep.c +++ b/gdb/shnbsd-tdep.c @@ -177,7 +177,7 @@ static void shnbsd_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch) { - set_gdbarch_pc_in_sigtramp (gdbarch, shnbsd_pc_in_sigtramp); + set_gdbarch_deprecated_pc_in_sigtramp (gdbarch, shnbsd_pc_in_sigtramp); set_solib_svr4_fetch_link_map_offsets (gdbarch, nbsd_ilp32_solib_svr4_fetch_link_map_offsets); diff --git a/gdb/sparc-linux-tdep.c b/gdb/sparc-linux-tdep.c index 13875af..8f77dcc 100644 --- a/gdb/sparc-linux-tdep.c +++ b/gdb/sparc-linux-tdep.c @@ -293,7 +293,7 @@ sparc32_linux_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch) set_gdbarch_long_double_bit (gdbarch, 64); set_gdbarch_long_double_format (gdbarch, &floatformat_ieee_double_big); - set_gdbarch_pc_in_sigtramp (gdbarch, sparc32_linux_pc_in_sigtramp); + set_gdbarch_deprecated_pc_in_sigtramp (gdbarch, sparc32_linux_pc_in_sigtramp); frame_unwind_append_sniffer (gdbarch, sparc32_linux_sigtramp_frame_sniffer); set_solib_svr4_fetch_link_map_offsets diff --git a/gdb/sparc-sol2-tdep.c b/gdb/sparc-sol2-tdep.c index 5f65b78..0885d47 100644 --- a/gdb/sparc-sol2-tdep.c +++ b/gdb/sparc-sol2-tdep.c @@ -185,7 +185,7 @@ sparc32_sol2_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch) /* Solaris has kernel-assisted single-stepping support. */ set_gdbarch_software_single_step (gdbarch, NULL); - set_gdbarch_pc_in_sigtramp (gdbarch, sparc_sol2_pc_in_sigtramp); + set_gdbarch_deprecated_pc_in_sigtramp (gdbarch, sparc_sol2_pc_in_sigtramp); frame_unwind_append_sniffer (gdbarch, sparc32_sol2_sigtramp_frame_sniffer); } diff --git a/gdb/sparc64-sol2-tdep.c b/gdb/sparc64-sol2-tdep.c index 079f3c5..43057fe 100644 --- a/gdb/sparc64-sol2-tdep.c +++ b/gdb/sparc64-sol2-tdep.c @@ -153,7 +153,7 @@ sparc64_sol2_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch) { struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch); - set_gdbarch_pc_in_sigtramp (gdbarch, sparc_sol2_pc_in_sigtramp); + set_gdbarch_deprecated_pc_in_sigtramp (gdbarch, sparc_sol2_pc_in_sigtramp); frame_unwind_append_sniffer (gdbarch, sparc64_sol2_sigtramp_frame_sniffer); sparc64_init_abi (info, gdbarch); diff --git a/gdb/sparc64fbsd-tdep.c b/gdb/sparc64fbsd-tdep.c index 3c1335d..0c410ef 100644 --- a/gdb/sparc64fbsd-tdep.c +++ b/gdb/sparc64fbsd-tdep.c @@ -208,7 +208,7 @@ sparc64fbsd_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch) tdep->fpregset->supply_regset = sparc64fbsd_supply_fpregset; tdep->sizeof_fpregset = 272; - set_gdbarch_pc_in_sigtramp (gdbarch, sparc64fbsd_pc_in_sigtramp); + set_gdbarch_deprecated_pc_in_sigtramp (gdbarch, sparc64fbsd_pc_in_sigtramp); frame_unwind_append_sniffer (gdbarch, sparc64fbsd_sigtramp_frame_sniffer); sparc64_init_abi (info, gdbarch); diff --git a/gdb/sparc64nbsd-tdep.c b/gdb/sparc64nbsd-tdep.c index 8e79870..7b2adf3 100644 --- a/gdb/sparc64nbsd-tdep.c +++ b/gdb/sparc64nbsd-tdep.c @@ -235,7 +235,7 @@ sparc64nbsd_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch) tdep->fpregset->supply_regset = sparc64nbsd_supply_fpregset; tdep->sizeof_fpregset = 272; - set_gdbarch_pc_in_sigtramp (gdbarch, sparc64nbsd_pc_in_sigtramp); + set_gdbarch_deprecated_pc_in_sigtramp (gdbarch, sparc64nbsd_pc_in_sigtramp); frame_unwind_append_sniffer (gdbarch, sparc64nbsd_sigtramp_frame_sniffer); sparc64_init_abi (info, gdbarch); diff --git a/gdb/sparc64obsd-tdep.c b/gdb/sparc64obsd-tdep.c index 190a46b..162f11d 100644 --- a/gdb/sparc64obsd-tdep.c +++ b/gdb/sparc64obsd-tdep.c @@ -189,7 +189,7 @@ sparc64obsd_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch) tdep->gregset->supply_regset = sparc64obsd_supply_gregset; tdep->sizeof_gregset = 832; - set_gdbarch_pc_in_sigtramp (gdbarch, sparc64obsd_pc_in_sigtramp); + set_gdbarch_deprecated_pc_in_sigtramp (gdbarch, sparc64obsd_pc_in_sigtramp); frame_unwind_append_sniffer (gdbarch, sparc64obsd_sigtramp_frame_sniffer); sparc64_init_abi (info, gdbarch); diff --git a/gdb/sparcnbsd-tdep.c b/gdb/sparcnbsd-tdep.c index b1be7eb..4cf4dcf 100644 --- a/gdb/sparcnbsd-tdep.c +++ b/gdb/sparcnbsd-tdep.c @@ -283,7 +283,7 @@ sparc32nbsd_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch) tdep->fpregset->supply_regset = sparc32nbsd_supply_fpregset; tdep->sizeof_fpregset = 33 * 4; - set_gdbarch_pc_in_sigtramp (gdbarch, sparc32nbsd_pc_in_sigtramp); + set_gdbarch_deprecated_pc_in_sigtramp (gdbarch, sparc32nbsd_pc_in_sigtramp); frame_unwind_append_sniffer (gdbarch, sparc32nbsd_sigtramp_frame_sniffer); } diff --git a/gdb/sparcobsd-tdep.c b/gdb/sparcobsd-tdep.c index 108e255..2677d4d 100644 --- a/gdb/sparcobsd-tdep.c +++ b/gdb/sparcobsd-tdep.c @@ -152,7 +152,7 @@ sparc32obsd_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch) set_gdbarch_long_double_bit (gdbarch, 64); set_gdbarch_long_double_format (gdbarch, &floatformat_ieee_double_big); - set_gdbarch_pc_in_sigtramp (gdbarch, sparc32obsd_pc_in_sigtramp); + set_gdbarch_deprecated_pc_in_sigtramp (gdbarch, sparc32obsd_pc_in_sigtramp); frame_unwind_append_sniffer (gdbarch, sparc32obsd_sigtramp_frame_sniffer); set_solib_svr4_fetch_link_map_offsets |