This is the mail archive of the
gdb-patches@sources.redhat.com
mailing list for the GDB project.
Re: [RFA] Introduce solib_loaded observer
- From: Daniel Jacobowitz <drow at false dot org>
- To: Mark Kettenis <mark dot kettenis at xs4all dot nl>
- Cc: gdb-patches at sources dot redhat dot com, kevinb at redhat dot com, eliz at gnu dot org
- Date: Sat, 8 Jan 2005 19:01:04 -0500
- Subject: Re: [RFA] Introduce solib_loaded observer
- References: <200501082314.j08NE6a1080151@elgar.sibelius.xs4all.nl>
On Sun, Jan 09, 2005 at 12:14:06AM +0100, Mark Kettenis wrote:
> This patch introduces a new solib_loaded observer that parallels the
> solub_unloaded observer that we already have. I need this observer to
> properly implement a threads stratum for FreeBSD and OpenBSD
> user-space threads library support. With this observer I'll also be
> able to fix the problems we're having with statically linked programs
> that use the threading library on Linux. If you think about it a bit,
> the problems with static thread libraries stem from the fact that we
> abuse the now deprecated target_new_objfile_hook to get notified about
> newly loaded libraries. Unfortunately that hook is also called when
> the main executable is loaded, which causes all kinds of trouble.
Actually, I've already posted patches for the Linux problem. The basic
"abuse" of the target_new_objfile_hook isn't really the stumbling
block, rather, the attempt to use it for both running and non-running
programs. The necessary fix was to use inferior_created. Still, it'll
definitely be cleaner to use a solib_loaded hook there, and I look
forward to that.
I'll ping that patch after I get back from travelling next week.
> The patch below doesn't only implement the new observer. The reason
> for that is that when the solib_loaded observer is called, the symbols
> for the new library haven't been loaded yet. So I've split out the
> code to read in those symbols out from solib_add() into a seperate
> function, and made that public.
Could you explain why this is necessary, instead of calling the
observer after loading symbols? I don't see notification at that point
as particularly useful. Certainly the first thing the GNU/Linux code
would want to do would be to load the symbols.
--
Daniel Jacobowitz