On Wed, Mar 23, 2011 at 1:47 PM, Joe Damato <[email protected]> wrote:

>> 2. For prelinked libraries, the _r_debug.r_map list does not give you
>>   access to the info you need: l_map->l_addr becomes 0 for all images
>>   that are loaded at their desired address!
>
> l_addr is the difference between the on disk address in PT_LOAD and
> the in memory address of the library.

Yes.

> AFAIK, you will have to parse
> some of the headers of the library (on disk)

You don't suggest we do that during the unwind, do you?

Going to disk during dl_debug_state is possible, but less than ideal.

> to figure out the base load address. there's no way around that.

Sure there is.

Glibc has that info, and dl_iterate_phdr uses it without going to disk. It's
too bad glibc considers that info private and none of our business.

Cheers,
-- 
Paul Pluzhnikov

_______________________________________________
Libunwind-devel mailing list
[email protected]
http://lists.nongnu.org/mailman/listinfo/libunwind-devel

Reply via email to