OK, this file was pretty much completely wrong. I copied it from the
SunOS version, but our shared libraries are not THAT much like SunOS. In NetBSD a.out shared libraries, trampoline stubs have _DYNAMIC+n as their symbol, so we can recognize them with strcmp. We may also need SKIP_TRAMPOLINE_CODE(pc) eventually, but doing that right takes machine dependent code to lookup what the _DYNAMIC stub jumps to. (gdb appears to work OK on a.out without SKIP_TRAMPOLINE_CODE)
This commit is contained in:
parent
7afe181893
commit
98e7377438
|
@ -20,12 +20,11 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
|
|||
|
||||
#include "solib.h" /* Support for shared libraries. */
|
||||
|
||||
#ifndef SVR4_SHARED_LIBS
|
||||
|
||||
/* Return non-zero if we are in a shared library trampoline code stub. */
|
||||
|
||||
#define IN_SOLIB_CALL_TRAMPOLINE(pc, name) \
|
||||
lookup_solib_trampoline_symbol_by_pc (pc)
|
||||
(name && !strcmp(name, "_DYNAMIC"))
|
||||
|
||||
/* If PC is in a shared library trampoline code, return the PC
|
||||
where the function itself actually starts. If not, return 0. */
|
||||
|
||||
#define SKIP_TRAMPOLINE_CODE(pc) find_solib_trampoline_target (pc)
|
||||
#endif /* SVR4_SHARED_LIBS */
|
||||
|
|
Loading…
Reference in New Issue