Chicken-or-egg problem with shared libraries
PAUL GILLIAM
pgilliam@us.ibm.com
Tue May 23 22:59:00 GMT 2006
In solib-svr4.c (enable_break), GDB tries to set a breakpoint in the
dynamic loader (at "_dl_debug_state") so that shared objects can be
tracked as they are loaded and unloaded.
The problem (on gnu/linux PowerPC64 at least) is that the dynamic loader
is it's self a shared object and its minimal symbols are not loaded when
"enable_break" is called.
I have two ideas for fixing this: 1) pre-load the dynamic loaders
minimal symbols so that when "enable_break()" is called,
"_dl_debug_state" will be found and all is well and 2) allow
"enable_break()" to set a pending breakpoint.
The second idea has the problem of which name to use: "enable_break()"
currently tries five or six.
I like the first idea, but something is nagging the back of my mind
about it, but I don't know what. I think we're talking about less the
20 minimal symbols and the name of the of the dynamic linker is in the
elf section '.interp'. So that sounds straight forward.
Any advice?
-=# Paul #=-
More information about the Gdb
mailing list