On Thu, Sep 8, 2016 at 9:07 AM, Jeff Darcy <[email protected]> wrote: > In a few places in our code (e.g. gf_log_callingfn) we use the "backtrace" > and "backtrace_symbols" functions from libc to log stack traces. > Unfortunately, these functions don't seem very smart about dynamically loaded > libraries - such as translators, where most of our code lives. They give us > the object plus offset from where the object was loaded into memory, which > isn't that easy to turn into a function name (let alone a file and line > number). It seems like libunwind can do better, getting at least to the > function name. AFAICT it's supported and packaged on all of our platforms, > though there might be version differences. Newer versions can supposedly get > to file and line, which would be even better. Before I get further into > this, two questions for all of you: > > (1) Has somebody already gone down this path? Does it work? > > (2) Are there any other reasons we wouldn't want to switch?
Cannot think of any. The BSD platforms seem to have libunwind and Mac OS X doesn't have it apparently [1]. I have been thinking of fixing the recent Mac OS X compilation problems and can address issues related to libunwind as part of that activity. -Vijay [1] http://comments.gmane.org/gmane.comp.lib.unwind.devel/2199 _______________________________________________ Gluster-devel mailing list [email protected] http://www.gluster.org/mailman/listinfo/gluster-devel
