diff options
Diffstat (limited to 'gdb/config/tm-sysv4.h')
-rw-r--r-- | gdb/config/tm-sysv4.h | 12 |
1 files changed, 3 insertions, 9 deletions
diff --git a/gdb/config/tm-sysv4.h b/gdb/config/tm-sysv4.h index 18c88ef..51c65e9 100644 --- a/gdb/config/tm-sysv4.h +++ b/gdb/config/tm-sysv4.h @@ -19,18 +19,12 @@ along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ /* For SVR4 shared libraries, each call to a library routine goes through - a small piece of trampoline code in the ".init" section. Although each - of these fragments is labeled with the name of the routine being called, - the gdb symbol reading code deliberately ignores them so it won't confuse - them with the real functions. It does however know about the label that - precedes all of the fragments, which is "_init". Thus when we lookup a - function that corresponds to a PC value which is in one of the trampoline - fragments, we'll appear to be in the function "_init". The following - macro will evaluate to nonzero when NAME is valid and matches "_init". + a small piece of trampoline code in the ".plt" section. The horribly ugly wait_for_inferior() routine uses this macro to detect when we have stepped into one of these fragments. */ -#define IN_SOLIB_TRAMPOLINE(pc,name) ((name) && (STREQ ("_init", name))) +#define IN_SOLIB_TRAMPOLINE(pc, name) in_plt_section((pc), (name)) +extern int in_plt_section PARAMS ((CORE_ADDR, char *)); /* It is unknown which, if any, SVR4 assemblers do not accept dollar signs in identifiers. The default in G++ is to use dots instead, for all SVR4 |