On Fri, Aug 2, 2013 at 11:46 AM, Andrew Pinski <pinskia@gmail.com> wrote:
On Fri, Aug 2, 2013 at 11:49 AM, Burlen Loring <bloring@lbl.gov> wrote:
This is my first binutils foray. I'm making use of libbfd to provide
detailed stack trace in an app if it crashes. In testing I've found
systems[*] with older binutils where bfd_find_nearest_line segv's. I'd like
to configure my app to disable the stack trace feature on systems with the
older binutils. Is there a preprocessor macro that can be used to idnetify
the binutils release? if not what's the best way to determine the binutils
version?
Won't it be better to use libdwarf and not use bfd?
BFD is not designed to be used outside of binutils/gdb. Any use
outside of it I consider it a bug.
Another option, specifically designed for getting a stack trace in a
running program, is to use libbacktrace. It can be found in the gcc
repository. It only works for DWARF, though, which means that it
probably won't work on Windows unless you only compile with GCC.
I agree with Andrew that libbfd is unfortunately best avoided.
Ian