This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [PATCH] Use libbacktrace as libsanitizer's symbolizer
- From: Ian Lance Taylor <iant at google dot com>
- To: Alexey Samsonov <samsonov at google dot com>
- Cc: Jakub Jelinek <jakub at redhat dot com>, Konstantin Serebryany <kcc at gcc dot gnu dot org>, GCC Patches <gcc-patches at gcc dot gnu dot org>
- Date: Wed, 27 Nov 2013 09:44:02 -0800
- Subject: Re: [PATCH] Use libbacktrace as libsanitizer's symbolizer
- Authentication-results: sourceware.org; auth=none
- References: <CAGSYnCOs6BHEqfhoBdpF0AEODHhbhLENyWGy_DrObVnUv+js2g at mail dot gmail dot com> <20131118162342 dot GH892 at tucnak dot redhat dot com> <CAGSYnCPcGeYB7EEw=jAFf6h-gc2wJi0hqeZLDPEfmKOjq3FWAA at mail dot gmail dot com> <20131119153350 dot GW892 at tucnak dot redhat dot com> <20131119164221 dot GZ892 at tucnak dot redhat dot com> <CAGSYnCNYcAfhN6k-JFkBbnub2U6=x_VYCuH2K7VhSUf7HZ2FCQ at mail dot gmail dot com> <20131122183452 dot GI892 at tucnak dot redhat dot com> <CAGSYnCOqf4Yz0ji+tGnioAN1HF8iuHVLpq+sBRO9h6qYnwU=2A at mail dot gmail dot com> <20131125150203 dot GX892 at tucnak dot redhat dot com> <CAGSYnCM5KnwiC0s_ZNinWQ30FgazkqwEWHJF1oZMQO3vv1Qymg at mail dot gmail dot com> <20131127122016 dot GB892 at tucnak dot redhat dot com> <CAGSYnCO8vNH4+hwov7GcGcWKnbVjnjAj9bbQiNMD_9u9ENytZw at mail dot gmail dot com>
On Wed, Nov 27, 2013 at 4:31 AM, Alexey Samsonov <samsonov@google.com> wrote:
>
> LLVM emits just a DW_AT_low_pc ("base address" of a compilation unit). The
> standard tells that compilation unit entries "may have" attributes
> specifying the
> address range, but doesn't tell they are obligatory.
> DWARF consumers probably shouldn't rely on their presence.
How are consumers of LLVM debug info expected to determine the address
range of the function? Is the intent that the consumer should assume
that the function continues from the DW_AT_low_pc address to the next
DW_AT_low_pc address from the debug info? Or should the consumer look
at the function size from the symbol table? Or should the consumer
examine all the DIEs looking for address ranges?
Does LLVM support anything like GCC's -freorder-blocks-and-partition
option, and, if so, how does it represent the address ranges in the
debug info?
Ian