|
From: | Don Maghrak |
Subject: | Re: [Libunwind-devel] retrieving symbols |
Date: | Thu, 12 Jan 2012 14:52:44 -0600 |
User-agent: | Mozilla/5.0 (Windows NT 6.1; WOW64; rv:10.0) Gecko/20120106 Thunderbird/10.0 |
On 1/12/2012 2:22 PM, Steve Fink wrote:
I'd like to see something similar. In our current approach, we did > some coding on top of the libbfd and liberty libraries doing a work > which would be similar to addr2line -e (all three from binutils). This > would somewhat "useless" if libunwind can make it.Yes, that's partly why I'm here now too -- libbfd could do it, but it's GPL. (Not LGPL.)
If you need a LGPL solution you could look at symtabAPI from the dyninst group. Documentation for the Symtab API can be found at: http://www.dyninst.org/. SymtabAPI is a C++ api which may or may not be an issue for some. OpenSpeedShop supports a bfd addr2line approach to resolve symbols from libunwind stacktraces and also supports using symtabAPI when it is available (or preferred) on a system. In both cases we resolve symbols after a victim program is finished. As Arun pointed out in an earlier response, you need the /proc/<pid>/maps information as it is used to resolve the addresses to the correct dsos. Since we gather stacktraces in signal handles (e.g. sigprof) we are reluctant to resolve symbols at the time we take the trace.
[Prev in Thread] | Current Thread | [Next in Thread] |