rtems-addr2line not working on ARM?
Chris Johns
chrisj at rtems.org
Fri Sep 6 07:01:43 UTC 2019
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.
> The mapping to the function (-f option) get both tools right.
Sorry I do not understand this sentence.
> I don't understand the logic here:
>
> bool
> file::get_source (const unsigned int addr,
> std::string& source_file,
> int& source_line)
> {
> [...]
> address match;
>
> for (auto& cu : cus)
> {
> address line;
> r = cu.get_source (addr, line);
> if (r)
> {
>
> <-- Why is there a "match = line" in both cases?
>
Looks like a bug and related to the comment not posted but present in the code ...
/*
* Search the CU's collecting the addresses. An address can appear in
* more than one CU. It may be the last address and the first.
*/
> if (match.valid () &&
> (match.is_an_end_sequence () || !!line.is_an_end_sequence ()))
> {
> match = line;
> }
> else
> {
I think this is suppose to happen if match is not valid ...
> match = line;
Chris
More information about the devel
mailing list