[PATCH] DwarfExtensions: Document DW_OP_GNU_variable_value.

2017-11-04 Thread Mark Wielaard
Signed-off-by: Mark Wielaard --- DwarfExtensions | 1 + 1 file changed, 1 insertion(+) diff --git a/DwarfExtensions b/DwarfExtensions index ba5ab41..9a2b844 100644 --- a/DwarfExtensions +++ b/DwarfExtensions @@ -106,6 +106,7 @@ DW_OP_GNU_parameter_ref 0xfa http://gcc.gnu.org/ml/gcc-patches/2

[PATCH 1/3] readelf: Handle DW_OP_GNU_variable_value.

2017-11-04 Thread Mark Wielaard
Also format both DW_OP_call_ref and DW_OP_GNU_variable_value argument as a normal DIE reference. Signed-off-by: Mark Wielaard --- libdw/ChangeLog | 4 libdw/dwarf.h | 1 + src/ChangeLog | 5 + src/readelf.c | 5 +++-- 4 files changed, 13 insertions(+), 2 deletions(-) diff --git a

[PATCH 3/3] libdw: Handle DW_OP_GNU_variable_value.

2017-11-04 Thread Mark Wielaard
Handle DW_OP_GNU_variable_value in dwarf_getlocation[_attr,_die]. DW_OP_GNU_variable_value takes one argument a DIE reference that describes a value given by a location of const_value attribute. To test handling of the new operand the varlocs test is adapted to print out all DIEs and attributes wi

[PATCH 2/3] libdw: Update acceptable forms and attributes for dwarf_getlocation.

2017-11-04 Thread Mark Wielaard
dwarf_getlocation has to know which attributes can contain a DWARF expression or location list because the form alone might be ambiguous. Since DWARF4 there is DW_FORM_exprloc so always accept that. But for older DWARF or location lists we cannot just check for DW_FORM_sec_offset since that could