This is the mail archive of the
binutils@sourceware.org
mailing list for the binutils project.
Re: preprocessor macro to identify binutils version?
- From: Ian Lance Taylor <iant at google dot com>
- To: Andrew Pinski <pinskia at gmail dot com>
- Cc: Burlen Loring <bloring at lbl dot gov>, binutils <binutils at sourceware dot org>
- Date: Fri, 2 Aug 2013 13:27:49 -0700
- Subject: Re: preprocessor macro to identify binutils version?
- References: <51FBFF22 dot 6050107 at lbl dot gov> <CA+=Sn1=T5pOiTqwYSj1Y251b=hMCrXRojF=ONxQUgmObcG4w1g at mail dot gmail dot com>
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