[Bug libdw/28220] dwarf_location_attr returns high-bit junk from .debug_addr when fetching 32-bit addresses

mark at klomp dot org sourceware-bugzilla@sourceware.org
Sun Sep 12 19:45:28 GMT 2021


Mark Wielaard <mark at klomp dot org> changed:

           What    |Removed                     |Added
         Resolution|---                         |FIXED
             Status|ASSIGNED                    |RESOLVED

--- Comment #6 from Mark Wielaard <mark at klomp dot org> ---
commit 52b0d9caf5575a62322c9fbe920b69444dd09162
Author: Mark Wielaard <mark@klomp.org>
Date:   Thu Aug 26 19:05:45 2021 +0200

    libdw: set address size, offset size and version on fake CUs

    There are three "fake CUs" that are associated with .debug_loc,
    .debug_loclist and .debug_addr.  These fake CUs are used for "fake
    attributes" to provide values that are stored in these sections
    instead of in the .debug_info section. These fake CUs didn't have the
    address size, offset size and DWARF version set. This meant that
    values that depended on those properties might not be interpreted
    correctly. One example was the value associated with a DW_OP_addrx
    (which comes from the .debug_addr section).

    Add a testcase using varlocs to test that addresses can correctly be
    retrieved for gcc/clang, DWARF4/5 and 32/64 bits objects.


    Signed-off-by: Mark Wielaard <mark@klomp.org>

You are receiving this mail because:
You are on the CC list for the bug.

More information about the Elfutils-devel mailing list