summaryrefslogtreecommitdiffstats
path: root/libdw/dwarf.h
diff options
context:
space:
mode:
authorMark Wielaard <[email protected]>2017-11-26 17:40:56 +0100
committerMark Wielaard <[email protected]>2018-02-21 17:16:23 +0100
commiteb11b0f15c0fd06aa8fcc59feba36b6b091f30f7 (patch)
treed259b1d8d0b157b6cb4b59efd89b117731997124 /libdw/dwarf.h
parent79f0e623dcde4b042bb72f636a2211d67d5c0ade (diff)
libdw: Recognize new DWARF5 attribute forms.
This just makes sure we know how the new forms are encoded. It doesn't yet handle them in the dwarf_form* functions. But it does make it possible to skip them when reading DWARF5. DW_FORM_implicit_const has zero size (the value is in the abbrev, not in the info). DW_FORM_addrx[1234], DW_FORM_strx[1234], DW_FORM_ref_sup[48] and DW_FORM_data16 have constant size. DW_FORM_strp_sup and DW_FORM_line_strp are offset size. DW_FORM_addrx, DW_FORM_strx, DW_FORM_loclistx and DW_FORM_rnglistx encode a uleb128. Signed-off-by: Mark Wielaard <[email protected]>
Diffstat (limited to 'libdw/dwarf.h')
-rw-r--r--libdw/dwarf.h18
1 files changed, 18 insertions, 0 deletions
diff --git a/libdw/dwarf.h b/libdw/dwarf.h
index bf816941..4f362066 100644
--- a/libdw/dwarf.h
+++ b/libdw/dwarf.h
@@ -382,7 +382,25 @@ enum
DW_FORM_sec_offset = 0x17,
DW_FORM_exprloc = 0x18,
DW_FORM_flag_present = 0x19,
+ DW_FORM_strx = 0x1a,
+ DW_FORM_addrx = 0x1b,
+ DW_FORM_ref_sup4 = 0x1c,
+ DW_FORM_strp_sup = 0x1d,
+ DW_FORM_data16 = 0x1e,
+ DW_FORM_line_strp = 0x1f,
DW_FORM_ref_sig8 = 0x20,
+ DW_FORM_implicit_const = 0x21,
+ DW_FORM_loclistx = 0x22,
+ DW_FORM_rnglistx = 0x23,
+ DW_FORM_ref_sup8 = 0x24,
+ DW_FORM_strx1 = 0x25,
+ DW_FORM_strx2 = 0x26,
+ DW_FORM_strx3 = 0x27,
+ DW_FORM_strx4 = 0x28,
+ DW_FORM_addrx1 = 0x29,
+ DW_FORM_addrx2 = 0x2a,
+ DW_FORM_addrx3 = 0x2b,
+ DW_FORM_addrx4 = 0x2c,
DW_FORM_GNU_ref_alt = 0x1f20, /* offset in alternate .debuginfo. */
DW_FORM_GNU_strp_alt = 0x1f21 /* offset in alternate .debug_str. */