Roland McGrath wrote:
* What is read_length for? I don't think there can be any relocs
in the
DW_FORM_block* length fields. What other use do you envision for it?
Probably nothing. I rolled it in when I've hit some length-related
code, having remembered that you've mentioned length in one of the
how-to emails that you had posted earlier. I was mostly expecting it
would turn out being useless, but left it for cross-checking with
dwarflint. I dropped it now.
* In dwarf_getlocation_addr, s/IDX_debug_info/IDX_debug_loc/.
Do you mean s/IDX_debug_line/IDX_debug_loc/? That's what I've done. I
think the debug_info is correct, but debug_line seem to be erroneous.
* There are two cases of reading a begin/end pair of address_size
words
I created __libdw_read_begin_end_pair_inc with common bits of begin/end
handling. It doesn't use __libdw_read_address but instead uses
READ_AND_RELOCATE macro directly, so that it knows whether the
relocation was present or not (the macro was changed to provide that
information to the caller). Or is it necessary to have reloc processing
directly in that method? The way it's written now, it uses the same
reloc hook as __libdw_read_address.
* dwarf_formudata needs special treatment.
Will hopefully do later today.
The rest that I snipped is done according to your comments.
Thanks,
PM