mirror of
https://sourceware.org/git/binutils-gdb.git
synced 2024-11-23 18:14:13 +08:00
Scrub remnants of IN_SOLIB_DYNSYM_RESOLVE_CODE.
* gdbarch.sh: Adjust comment to refer to in_solib_dynsym_resolve_code(). * gdbarch.h, gdbarch.c: Update. * solib-osf.c: Ditto. * infrun.c: Ditto. (handle_inferior_event): Use in_solib_dynsym_resolve_code unconditionally. * config/mips/nm-irix5.h: Remove undef of IN_SOLIB_DYNSYM_RESOLVE_CODE. * gdbint.texinfo: Refer to target_so_ops.in_dynsym_resolve_code instead of IN_SOLIB_DYNSYM_RESOLVE_CODE.
This commit is contained in:
parent
21963d0e69
commit
cfd8ab242a
@ -1,3 +1,16 @@
|
||||
2008-07-21 Stan Shebs <stan@codesourcery.com>
|
||||
|
||||
Scrub remnants of IN_SOLIB_DYNSYM_RESOLVE_CODE.
|
||||
* gdbarch.sh: Adjust comment to refer to
|
||||
in_solib_dynsym_resolve_code().
|
||||
* gdbarch.h, gdbarch.c: Update.
|
||||
* solib-osf.c: Ditto.
|
||||
* infrun.c: Ditto.
|
||||
(handle_inferior_event): Use in_solib_dynsym_resolve_code
|
||||
unconditionally.
|
||||
* config/mips/nm-irix5.h: Remove undef of
|
||||
IN_SOLIB_DYNSYM_RESOLVE_CODE.
|
||||
|
||||
2008-07-21 Tom Tromey <tromey@redhat.com>
|
||||
|
||||
* symfile.c (reread_symbols): Don't pass argument to observer.
|
||||
|
@ -18,8 +18,6 @@
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>. */
|
||||
|
||||
#undef IN_SOLIB_DYNSYM_RESOLVE_CODE
|
||||
|
||||
#define TARGET_HAS_HARDWARE_WATCHPOINTS
|
||||
|
||||
/* TARGET_CAN_USE_HARDWARE_WATCHPOINT is now defined to go through
|
||||
|
@ -1,3 +1,8 @@
|
||||
2008-07-21 Stan Shebs <stan@codesourcery.com>
|
||||
|
||||
* gdbint.texinfo: Refer to target_so_ops.in_dynsym_resolve_code
|
||||
instead of IN_SOLIB_DYNSYM_RESOLVE_CODE.
|
||||
|
||||
2008-07-21 Tom Tromey <tromey@redhat.com>
|
||||
|
||||
* observer.texi (GDB Observers): Remove obsolete comment.
|
||||
|
@ -3825,8 +3825,8 @@ final `return from function call' instruction.
|
||||
Define this function to return nonzero if the program is stopped in the
|
||||
trampoline that returns from a shared library.
|
||||
|
||||
@item IN_SOLIB_DYNSYM_RESOLVE_CODE (@var{pc})
|
||||
@findex IN_SOLIB_DYNSYM_RESOLVE_CODE
|
||||
@item target_so_ops.in_dynsym_resolve_code (@var{pc})
|
||||
@findex in_dynsym_resolve_code
|
||||
Define this to return nonzero if the program is stopped in the
|
||||
dynamic linker.
|
||||
|
||||
|
@ -2150,7 +2150,7 @@ gdbarch_skip_main_prologue (struct gdbarch *gdbarch, CORE_ADDR ip)
|
||||
|
||||
void
|
||||
set_gdbarch_skip_main_prologue (struct gdbarch *gdbarch,
|
||||
gdbarch_skip_main_prologue_ftype skip_main_prologue)
|
||||
gdbarch_skip_main_prologue_ftype skip_main_prologue)
|
||||
{
|
||||
gdbarch->skip_main_prologue = skip_main_prologue;
|
||||
}
|
||||
|
@ -538,7 +538,7 @@ typedef CORE_ADDR (gdbarch_skip_trampoline_code_ftype) (struct frame_info *frame
|
||||
extern CORE_ADDR gdbarch_skip_trampoline_code (struct gdbarch *gdbarch, struct frame_info *frame, CORE_ADDR pc);
|
||||
extern void set_gdbarch_skip_trampoline_code (struct gdbarch *gdbarch, gdbarch_skip_trampoline_code_ftype *skip_trampoline_code);
|
||||
|
||||
/* If IN_SOLIB_DYNSYM_RESOLVE_CODE returns true, and SKIP_SOLIB_RESOLVER
|
||||
/* If in_solib_dynsym_resolve_code() returns true, and SKIP_SOLIB_RESOLVER
|
||||
evaluates non-zero, this is the address where the debugger will place
|
||||
a step-resume breakpoint to get us past the dynamic linker. */
|
||||
|
||||
|
@ -557,7 +557,7 @@ f:int:print_insn:bfd_vma vma, struct disassemble_info *info:vma, info::0:
|
||||
f:CORE_ADDR:skip_trampoline_code:struct frame_info *frame, CORE_ADDR pc:frame, pc::generic_skip_trampoline_code::0
|
||||
|
||||
|
||||
# If IN_SOLIB_DYNSYM_RESOLVE_CODE returns true, and SKIP_SOLIB_RESOLVER
|
||||
# If in_solib_dynsym_resolve_code() returns true, and SKIP_SOLIB_RESOLVER
|
||||
# evaluates non-zero, this is the address where the debugger will place
|
||||
# a step-resume breakpoint to get us past the dynamic linker.
|
||||
m:CORE_ADDR:skip_solib_resolver:CORE_ADDR pc:pc::generic_skip_solib_resolver::0
|
||||
|
19
gdb/infrun.c
19
gdb/infrun.c
@ -140,13 +140,13 @@ show_debug_infrun (struct ui_file *file, int from_tty,
|
||||
past the dynamic linker, as if we were using "next" to step over a
|
||||
function call.
|
||||
|
||||
IN_SOLIB_DYNSYM_RESOLVE_CODE says whether we're in the dynamic
|
||||
in_solib_dynsym_resolve_code() says whether we're in the dynamic
|
||||
linker code or not. Normally, this means we single-step. However,
|
||||
if SKIP_SOLIB_RESOLVER then returns non-zero, then its value is an
|
||||
address where we can place a step-resume breakpoint to get past the
|
||||
linker's symbol resolution function.
|
||||
|
||||
IN_SOLIB_DYNSYM_RESOLVE_CODE can generally be implemented in a
|
||||
in_solib_dynsym_resolve_code() can generally be implemented in a
|
||||
pretty portable way, by comparing the PC against the address ranges
|
||||
of the dynamic linker's sections.
|
||||
|
||||
@ -3014,12 +3014,7 @@ infrun: BPSTAT_WHAT_SET_LONGJMP_RESUME (!gdbarch_get_longjmp_target)\n");
|
||||
until we exit the run time loader code and reach the callee's
|
||||
address. */
|
||||
if (step_over_calls == STEP_OVER_UNDEBUGGABLE
|
||||
#ifdef IN_SOLIB_DYNSYM_RESOLVE_CODE
|
||||
&& IN_SOLIB_DYNSYM_RESOLVE_CODE (stop_pc)
|
||||
#else
|
||||
&& in_solib_dynsym_resolve_code (stop_pc)
|
||||
#endif
|
||||
)
|
||||
&& in_solib_dynsym_resolve_code (stop_pc))
|
||||
{
|
||||
CORE_ADDR pc_after_resolver =
|
||||
gdbarch_skip_solib_resolver (current_gdbarch, stop_pc);
|
||||
@ -3112,13 +3107,7 @@ infrun: BPSTAT_WHAT_SET_LONGJMP_RESUME (!gdbarch_get_longjmp_target)\n");
|
||||
if (real_stop_pc != 0)
|
||||
ecs->stop_func_start = real_stop_pc;
|
||||
|
||||
if (
|
||||
#ifdef IN_SOLIB_DYNSYM_RESOLVE_CODE
|
||||
IN_SOLIB_DYNSYM_RESOLVE_CODE (ecs->stop_func_start)
|
||||
#else
|
||||
in_solib_dynsym_resolve_code (ecs->stop_func_start)
|
||||
#endif
|
||||
)
|
||||
if (in_solib_dynsym_resolve_code (ecs->stop_func_start))
|
||||
{
|
||||
struct symtab_and_line sr_sal;
|
||||
init_sal (&sr_sal);
|
||||
|
@ -606,7 +606,7 @@ osf_in_dynsym_resolve_code (CORE_ADDR pc)
|
||||
for the user: When stepping inside a subprogram located in a shared
|
||||
library, gdb might stop inside the dynamic loader code instead of
|
||||
inside the subprogram itself. See the explanations in infrun.c about
|
||||
the IN_SOLIB_DYNSYM_RESOLVE_CODE macro for more details. */
|
||||
the in_solib_dynsym_resolve_code() function for more details. */
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user