mirror of
https://github.com/espressif/binutils-gdb.git
synced 2025-06-20 01:50:24 +08:00
* config/tm-sysv4.h (IN_SOLIB_TRAMPOLINE): Use new in_plt_section.
This commit is contained in:
@ -19,18 +19,12 @@ along with this program; if not, write to the Free Software
|
|||||||
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
|
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
|
||||||
|
|
||||||
/* For SVR4 shared libraries, each call to a library routine goes through
|
/* For SVR4 shared libraries, each call to a library routine goes through
|
||||||
a small piece of trampoline code in the ".init" section. Although each
|
a small piece of trampoline code in the ".plt" section.
|
||||||
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".
|
|
||||||
The horribly ugly wait_for_inferior() routine uses this macro to detect
|
The horribly ugly wait_for_inferior() routine uses this macro to detect
|
||||||
when we have stepped into one of these fragments. */
|
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
|
/* 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
|
in identifiers. The default in G++ is to use dots instead, for all SVR4
|
||||||
|
Reference in New Issue
Block a user