ext Daniel Jacobowitz wrote:
> On Wed, Jun 25, 2008 at 07:51:10AM -0400, Anderson Lizardo wrote:
>> When a library is prelinked, its section addresses are already absolute. This
>> patch checks for prelinked libraries by looking at the virtual address of the
>> PT_LOAD entry that has an offset equal to zero. If it is not zero, it means 
>> the
>> library is prelinked.
>>
>> Note that this only affects remote backtrace for ARM, because it fills the
>> struct dl_phdr_info manually with information from tdep_get_elf_image().
> 
> This check is not in general correct.  Libraries can be linked at any
> p_vaddr.  0 is traditional on most platforms, but for many years MIPS
> libraries were linked at 0x5ffe0000.  Also, if prelink loading fails
> then glibc will relocate libraries despite their absolute addresses.
> 
> It sounds to me like the data you're synthesizing from on-disk needs
> to be adjusted.

Do you have any suggestions on how to reliably calculate absolute
addresses? An alternative approach I have in mind is to peek directly at
the linker structures, like it's done by GDB. Is that the only feasible
general solution to the issue?

Regards,
-- 
Anderson Lizardo
Instituto Nokia de Tecnologia (INdT)
Manaus - Brazil


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

Reply via email to