Have you ever needed to know which shared object an address belongs to, but you don't have any debug symbols and gdb's info shared just isn't helping? Try walking down the link map chain to find what you need to know.

If you can load the C library's debug symbols, then you can find the first entry in the link map's chain of records by examining *_rtld_global->_dl_ns[0]._ns_loaded. The very first entry should be for the executable itself. It has an empty l_name field. Now walk down the list by traversing the l_next field of each record. The l_entry field is what gdb's info shared command reports as the “From” address when debug symbols are available.