Subject: Re: gdb and dlopen()
To: None <current-users@netbsd.org>
From: David Laight <david@l8s.co.uk>
List: current-users
Date: 08/27/2002 15:27:48
> In 1999 when I was using Linux, gdb could give backtraces into dlopen()ed
> code, but it could not set breakpoints in it. I don't think it could step
> into it either, but I am not sure.
Both are normally done by writing to the code segment.
If it is mapped shared then you are in trouble!
OTOH dlopen() seems to to:
685 mozilla-bin CALL mmap( 0,0x5000,0x5, 0x2,0xc,0,0)
PROT_READ | PROT_EXEC, MAP_PRIVATE
685 mozilla-bin RET mmap 1216962560/0x48896000
685 mozilla-bin CALL mmap(0x4889a000,0x1000,0x3, 0x12,0xc,0,0x3000)
PROT_WRITE | PROT_READ, MAP_FIXED | MAP_PRIVATE
685 mozilla-bin RET mmap 1216978944/0x4889a000
685 mozilla-bin CALL mmap(0x4889b000, 0,0x3,0x1012,0xffffffff,0,0)
PROT_WRITE | PROT_READ, MAP_ANON | MAP_FIXED | MAP_PRIVATE
685 mozilla-bin RET mmap 1216983040/0x4889b000
So nothing is actually shared (just cow).
why does in bother mapping in the zero length bss?
David
--
David Laight: david@l8s.co.uk