This is the mail archive of the gdb-patches@sources.redhat.com mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: unwind support for Linux 2.6 vsyscall DSO


> Daniel Jacobowitz <drow@mvista.com> writes:
> > The problem with using SOLIB_ADD for this is that we can't SOLIB_ADD
> > safely till we hit the dynamic linker breakpoint, but it would be
> > _really_ nice to be able to load this object right after the inferior
> > starts (and for static binaries, etc etc).  How would you suggets we do
> > that?
> 
> Well, look, the whole association with SOLIB_ADD at all was just based
> on the intuition that "Hey, this vsyscall thing is like a shared
> library!"  Nothing more profound than that.  So if it turns out that
> sticking with SOLIB_ADD makes things complicated, then it'd be much
> better to just add calls to the core, attach, and run code, or
> whereever else is appropriate, that does things exactly the way you
> want.

In the prior discussion I got the impression that SOLIB_ADD did happen
early enough (right after the exec stop), and just got repeated more times
later when there is actually anything in the dynamic linker's list.  Is
that not accurate?

Kevin says:
> I think that's what TARGET_CREATE_INFERIOR_HOOK is for.

This is only called in the "run" case.  There is also
SOLIB_CREATE_INFERIOR_HOOK, but that is called only in the "run", "target
remote", and follow-exec cases AFAICT.  

To reiterate, we need something that is called at the break-on-exec from
run, immediately after attach, immediately after loading a core file, and
after follow-exec breaks if that support is real.

We also need to clear out the state that hook will set up.  clear_solib
seems to be called at a reasonable time on the next "run", though only
SOLIB_RESTART is called in the follow-exec case and I'm not sure if
anything helpful is called to reset state before a new "attach".

The hooks I need are "we've just seen a new address space for the first
time" and "scratch that, the address space is gone".  I suppose actually
just the one suffices if it's never called extra times, so it just clears
the old and fetches the new every time.


Thanks,
Roland


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]