Skip to content

Add Support For New DW_FORM_data2 and other FORM tags in Juicer. #49

@lorenzo-gomez-windhover

Description

@lorenzo-gomez-windhover

When writing location of members(DW_TAG_member) inside structs, sometimes the compiler may use DW_FORM_data2. As per the DWARF standard v4, Section 7.5.4 :

...

constant
There are six forms of constants. There are fixed length constant data forms for one, two,
four and eight byte values (respectively, DW_FORM_data1, DW_FORM_data2,
DW_FORM_data4, and DW_FORM_data8). There are also variable length constant data
forms encoded using LEB128 numbers (see below). Both signed (DW_FORM_sdata) and
unsigned (DW_FORM_udata) variable length constants are available

....

This issue DOES NOT include LEB128. Another issue by itself may make more sense for LEB128.

It might make the most sense to split up this issue, one per form.

Producer(compiler) that triggered this behavior:

COMPILE_UNIT

:
< 0><0x0000000c>  DW_TAG_compile_unit
                    DW_AT_producer              GNU C+17 11.4.0 -mtune=generic -march=x86-64 -g -std=c+17 -fPIC -fasynchronous-unwind-tables -fstack-protector-strong -fstack-clash-protection -fcf-protection
                    DW_AT_language              DW_LANG_C_plus_plus_14

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions