diff options
author | Mark Kettenis <kettenis@gnu.org> | 2003-11-09 12:07:16 +0000 |
---|---|---|
committer | Mark Kettenis <kettenis@gnu.org> | 2003-11-09 12:07:16 +0000 |
commit | dea0c52f825dd14c6608c86e38a948d22115cd38 (patch) | |
tree | fa706dfaad281b4c3502f178f63796150df83ae7 /gdb/gdbarch.h | |
parent | 292da8136c57a208bf9bde712a3952198994edd3 (diff) | |
download | gdb-dea0c52f825dd14c6608c86e38a948d22115cd38.zip gdb-dea0c52f825dd14c6608c86e38a948d22115cd38.tar.gz gdb-dea0c52f825dd14c6608c86e38a948d22115cd38.tar.bz2 |
From David S. Miller <davem@redhat.com>:
* gdbarch.sh (SKIP_SOLIB_RESOLVER): New method.
* gdbarch.c, gdbarch.h: Regenerated.
* arch-utils.c (generic_skip_solib_resolver): New function.
* arch-utils.h (generic_skip_solib_resolver): New prototype.
* infrun.c (SKIP_SOLIB_RESOLVER): Don't define.
Diffstat (limited to 'gdb/gdbarch.h')
-rw-r--r-- | gdb/gdbarch.h | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/gdb/gdbarch.h b/gdb/gdbarch.h index 36e0e7a..021ab36 100644 --- a/gdb/gdbarch.h +++ b/gdb/gdbarch.h @@ -2134,6 +2134,20 @@ extern void set_gdbarch_skip_trampoline_code (struct gdbarch *gdbarch, gdbarch_s #define SKIP_TRAMPOLINE_CODE(pc) (gdbarch_skip_trampoline_code (current_gdbarch, pc)) #endif +/* 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. */ + +typedef CORE_ADDR (gdbarch_skip_solib_resolver_ftype) (CORE_ADDR pc); +extern CORE_ADDR gdbarch_skip_solib_resolver (struct gdbarch *gdbarch, CORE_ADDR pc); +extern void set_gdbarch_skip_solib_resolver (struct gdbarch *gdbarch, gdbarch_skip_solib_resolver_ftype *skip_solib_resolver); +#if (GDB_MULTI_ARCH > GDB_MULTI_ARCH_PARTIAL) && defined (SKIP_SOLIB_RESOLVER) +#error "Non multi-arch definition of SKIP_SOLIB_RESOLVER" +#endif +#if !defined (SKIP_SOLIB_RESOLVER) +#define SKIP_SOLIB_RESOLVER(pc) (gdbarch_skip_solib_resolver (current_gdbarch, pc)) +#endif + /* For SVR4 shared libraries, each call goes through a small piece of trampoline code in the ".plt" section. IN_SOLIB_CALL_TRAMPOLINE evaluates to nonzero if we are currently stopped in one of these. */ |