This is the mail archive of the
gdb@sources.redhat.com
mailing list for the GDB project.
Re: auto-solib-add when attaching to inferior
> > When I run a remote process using our QNX remote protocol, I get a solib
> > breakpoint set properly and from then on, if solibs are loaded, their
> > symbols automatically get added (auto-solib-add is on by default). If,
> > however, I attach to the process, even if auto-solib-add is on, I still
have
> > to go 'shared' to get them to load. If I 'maint info breakpoints' on
the
> > attached process, I see that there isn't a shlib-events breakpoint set
on
> > the attached process so I assume either enable_break() isn't getting
called
> > or is failing.
> >
> > I'm still building my debug gdb to test but I'm hoping someone will tell
me,
> > "Oh, when you attach you should always call such-and-such function" and
I
> > can just add it to our back end code.
>
> Search for SOLIB in remote.c and see if that helps.
I didn't see an explicit "remote_ops.to_attach" in remote.c function but I
notice that you're doing SOLIB_CREATE_INFERIOR_HOOK. We also do that when
we create a process. Just for chuckles, I tried to do that in our to_attach
function but it didn't work. If I call it before I set inferior_ptid to the
child process, I get a solib_event_bkpt that is relocated incorrectly. If I
do it after, then for some reason the target_wait() function spins blocks
forever trying to read from the inferior. On the bright side, the
relocation of the solib breakpoint is done correctly (I printed the
breakpoint_chain) but the lockup is a real puzzle. I'm wondering if somehow
my host and target are getting out of sync. Fun, fun, fun. I think I'm
going to have to attach to our remote agent and see what the heck it thinks
its doing.
cheers,
Kris