diff options
| author | Mark Wielaard <[email protected]> | 2017-11-26 17:40:56 +0100 |
|---|---|---|
| committer | Mark Wielaard <[email protected]> | 2018-02-21 17:16:23 +0100 |
| commit | eb11b0f15c0fd06aa8fcc59feba36b6b091f30f7 (patch) | |
| tree | d259b1d8d0b157b6cb4b59efd89b117731997124 /libdw/dwarf.h | |
| parent | 79f0e623dcde4b042bb72f636a2211d67d5c0ade (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.h | 18 |
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. */ |
