On Tue, Oct 09, 2012 at 11:20:48AM -0700, Ian Lance Taylor wrote:
> This patch to libbacktrace adds support for tracing through shared
> libraries.  The libraries are found by calling dl_iterate_phdr, when it
> is available.

This functionality is definitely useful for meta-plugins like MELT 
(since melt.so is dlopen-ing things)

> 
> This patch has some preliminary support for tracing through libaries
> opened via dlopen, but there is no code for actually finding such
> libraries.  


Perhaps you might use dladdr, on the few systems (notably GNU/Libc on Linux) 
which have it?
>From man dlsym output:

       int dladdr(void *addr, Dl_info *info);

       The  function  dladdr()  takes  a function pointer and tries to resolve
       name and file where it  is  located.   Information  is  stored  in  the
       Dl_info structure:

           typedef struct {
               const char *dli_fname;  /* Pathname of shared object that
                                          contains address */
               void       *dli_fbase;  /* Address at which shared object
                                          is loaded */
               const char *dli_sname;  /* Name of nearest symbol with address
                                          lower than addr */
               void       *dli_saddr;  /* Exact address of symbol named
                                          in dli_sname */
           } Dl_info;

       If no symbol matching addr could be found, then dli_sname and dli_saddr
       are set to NULL.

       dladdr() returns 0 on error, and nonzero on success.

Or maybe I misunderstood libbacktrace and my comment is irrelevant. If it is 
the case, sorry for the noise.

You could provide an extra API to register dlopen & dlclose to libbacktrace, if 
that helps you
(of course, I would prefer avoiding that)

Cheers
-- 
Basile STARYNKEVITCH         http://starynkevitch.net/Basile/
email: basile<at>starynkevitch<dot>net mobile: +33 6 8501 2359
8, rue de la Faiencerie, 92340 Bourg La Reine, France
*** opinions {are only mines, sont seulement les miennes} ***

Reply via email to