Re: How does solib handline shared library unloads?

Mark Kettenis
2005-11-01T06:59:10Z

> Date: Tue, 1 Nov 2005 00:39:34 -0500
> From: Christopher Faylor <me@cgf.cx>
>
> Can anyone enlighten me as to how information about a library is
> relinquished when a library loaded via dlopen is unloaded via dlclose?
> Theoretically, the information about the library should be removed and
> the library should not be listed by "info sharedlibrary".
>
> I don't see any way for this to be handled in solib.c and inf*.c but I'm
> sure I'm just missing something obvious. I haven't written a test case
> yet to see how it is being handled but I was hoping someone could
> clarify this for me.

It happens as part of solib_add(), which should be called for every
shared library events, not just dlopen()s. See the code in
update_solib_list() for the code that actually removes libraries from
GDB's internal list.

That said, I think I have convinced myself in the past that there is a
big gaping memory leak.

Mark