Add and use definition for IN_SOLIB_TRAMPOLINE which allows wait_for_inferior
to test whether or not it has stepped into the glue that binds an application to a shared library routine.
This commit is contained in:
parent
2cd9998540
commit
dc52fc7118
|
@ -1,3 +1,9 @@
|
|||
Wed Mar 18 18:22:46 1992 Fred Fish (fnf@cygnus.com)
|
||||
|
||||
* infrun.c (IN_SOLIB_TRAMPOLINE): Add default definition.
|
||||
* infrun.c (wait_for_inferior): Use IN_SOLIB_TRAMPOLINE.
|
||||
* tm-sysv4.h (IN_SOLIB_TRAMPOLINE): Add SVR4 definition.
|
||||
|
||||
Wed Mar 18 15:51:15 1992 Per Bothner (bothner@cygnus.com)
|
||||
|
||||
Some improvements to g++ debugging.
|
||||
|
|
|
@ -19,3 +19,17 @@ along with this program; if not, write to the Free Software
|
|||
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
|
||||
|
||||
#include "solib.h" /* Support for shared libraries. */
|
||||
|
||||
/* 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".
|
||||
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) && (strcmp ("_init", name) == 0))
|
||||
|
|
Loading…
Reference in New Issue