This is the mail archive of the
mailing list for the elfutils project.
Re: [PATCH] readelf: DW_CFA_set_loc operand is an address
- From: Mark Wielaard <mjw at redhat dot com>
- To: elfutils-devel at lists dot fedorahosted dot org
- Date: Wed, 25 Nov 2015 22:34:02 +0100
- Subject: Re: [PATCH] readelf: DW_CFA_set_loc operand is an address
On Wed, 2015-11-25 at 17:00 +0100, Ben Gamari wrote:
> Previously this was incorrectly assumed to be an ULEB128. Hilarity
> This appears to be the case in both DWARF 3, DWARF 4, and LSB 5.
Nice catch. Interestingly we seem to handle this correctly in cfi.c, but
not eu-readelf. But note that DWARF and the LSB eh_frame extension are
slightly different. For DWARF .debug_frame this is indeed a "plain"
address and your read_addr_unaligned_inc call is correct. But for
LSB .eh_frame addresses are "encoded" and you should call read_encoded
using the fde_encoding. It looks like fde_encoding isn't passed to
print_cfa_program, so we should probably pass it from
It appears that there is no testfile which uses DW_CFA_set_loc. If you
happen to have one that would be nice to add.
Do you want to combine this with the other patch for printing set_loc?
Could you add a ChangeLog entry and Signed-off-by line for your patch as
described in the CONTRIBUTING document: