summaryrefslogtreecommitdiff
path: root/libdw/libdw.h
diff options
context:
space:
mode:
authorMark Wielaard <mark@klomp.org>2017-11-26 17:51:11 +0100
committerMark Wielaard <mark@klomp.org>2018-02-21 17:19:33 +0100
commit8961f33e2a72a9430455cbb0368c71d22574dc3d (patch)
treec9b7a9a9a5301f66a6b4c058ce7dddaef6488616 /libdw/libdw.h
parenteb11b0f15c0fd06aa8fcc59feba36b6b091f30f7 (diff)
downloadelfutils-8961f33e2a72a9430455cbb0368c71d22574dc3d.tar.gz
libdw: Handle DWARF5 DW_FORM_implicit_const. Add dwarf_getabbrevattr_data.
Handle the new DW_FORM_implicit_const. The value of this form is embedded in the abbrev data (as sleb128) and not in the info DIE data. This also adds a new function dwarf_getabbrevattr_data which allows getting any data/value associated with a form. eu-readelf will use this new function to show the DW_FORM_implicit_const value. Signed-off-by: Mark Wielaard <mark@klomp.org>
Diffstat (limited to 'libdw/libdw.h')
-rw-r--r--libdw/libdw.h6
1 files changed, 6 insertions, 0 deletions
diff --git a/libdw/libdw.h b/libdw/libdw.h
index acc38916..ac43ad97 100644
--- a/libdw/libdw.h
+++ b/libdw/libdw.h
@@ -594,6 +594,12 @@ extern int dwarf_getabbrevattr (Dwarf_Abbrev *abbrev, size_t idx,
unsigned int *namep, unsigned int *formp,
Dwarf_Off *offset);
+/* Get specific attribute of abbreviation and any data encoded with it.
+ Specifically for DW_FORM_implicit_const data will be set to the
+ constant value associated. */
+extern int dwarf_getabbrevattr_data (Dwarf_Abbrev *abbrev, size_t idx,
+ unsigned int *namep, unsigned int *formp,
+ Dwarf_Sword *datap, Dwarf_Off *offset);
/* Get string from-debug_str section. */
extern const char *dwarf_getstring (Dwarf *dbg, Dwarf_Off offset,