----- Am 6. Sep 2019 um 11:09 schrieb Sebastian Huber sebastian.hu...@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: >>>> Hello, >>>> >>>> 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 >>>> build/arm-rtems5-xilinx_zynq_a9_qemu-everything/media01.exe >>>> 0x0000135a >>>> /home/EB/sebastian_h/git-rtems-5/c/src/lib/libbsp/arm/xilinx-zynq/../../../../../../bsps/arm/shared/irq/irq-gic.c:264 >>>> >>>> >>>> >>>> addr2line -e >>>> build/arm-rtems5-xilinx_zynq_a9_qemu-everything/media01.exe 0000135a >>>> /scratch/git-rtems-libbsd/build/arm-rtems5-xilinx_zynq_a9_qemu-everything/../../testsuite/include/rtems/bsd/test/default-network-init.h:179 >>>> >>>> >>>> >>>> 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 >>> support. >> >> 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: > > https://github.com/elftoolchain/elftoolchain/blob/trunk/addr2line/addr2line.c > > 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: https://github.com/llvm-mirror/llvm/blob/master/tools/llvm-symbolizer/llvm-symbolizer.cpp >From a first glance, this looks like the way to go. _______________________________________________ devel mailing list devel@rtems.org http://lists.rtems.org/mailman/listinfo/devel