+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.
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
+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.
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.
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;
}
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. */
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
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.
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);
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);
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;
}