rtems-addr2line not working on ARM?
sebastian.huber at embedded-brains.de
Fri Sep 6 16:06:35 UTC 2019
----- Am 6. Sep 2019 um 11:09 schrieb Sebastian Huber sebastian.huber at embedded-brains.de:
> On 06/09/2019 09:26, Sebastian Huber wrote:
>> On 06/09/2019 09:01, Chris Johns wrote:
>>> On 6/9/19 4:20 pm, Sebastian Huber wrote:
>>>> I tried the rtems-addr2line on ARM and SPARC. On SPARC it seems to
>>>> work fine,
>>>> however, on ARM I get this:
>>>> rtems-addr2line -e
>>>> addr2line -e
>>>> build/arm-rtems5-xilinx_zynq_a9_qemu-everything/media01.exe 0000135a
>>>> The GNU tool is right. It is also considerably faster.
>>> I would hope it is faster and exact. It has had many years of work on it,
>>> written in C and not a means to test a C++ framework so we can grow an
>>> ecosystem. I have stated its purpose before. I am perplexed by the
>>> intent of
>>> this statement.
>>> If you want to compare performance I suggest you try the elftools one?
>>> There is
>>> one. It is not built because GNU provides one and good one.
>>> Also be-careful as the exec call is not as fast as Linux on all the
>>> hosts we
>> That the GNU tool is faster was just an observation.
>> Do we have a working library solution to get from an address to the
>> source line/function? I don't have time to debug the DWARF support code
>> at the moment.
>> I have a working solution using "addr2line" and rld::process::execute().
> Thanks for the hint to the elftoolchain:
> To me it looks pretty complicated. It should be possible to refactor
> this code to use it as a library, e.g. call translate() for each address
> you need the source information.
> I tried to debug the rld get_source() problem for more than two hours
> and the elftoolchain code looks similar. I am not sure what to do.
Another option is to use the LLVM infrastructure:
>From a first glance, this looks like the way to go.
More information about the devel