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
On Wed, Apr 16, 2003 at 06:11:56PM -0400, Kris Warkentin wrote:
> > > 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.
Remember that you don't use attach with the normal remote protocol.
When you to_open the target has already started. For your agent it
sounds like you need to do it at to_attach time; but why isn't the one
in infcmd.c:attach_command working?
--
Daniel Jacobowitz
MontaVista Software Debian GNU/Linux Developer