• Lucian Grijincu's avatar
    folly::symbolizer: add support for DWARF5 · 490b287c
    Lucian Grijincu authored
    Summary:
    folly::symbolizer now supports both DWARF4 and DWARF5 debug info
    - http://www.dwarfstd.org/doc/DWARF4.pdf
    - http://www.dwarfstd.org/doc/DWARF5.pdf
    
    Split DWARF (Debug Fission)
    - with `-fsplit-dwarf-inlining`: folly::symbolizer will use the debug info from the skeleton CU.
    - without `-fsplit-dwarf-inlining`: folly::symbolizer won't read .dwo sections and can't symbolize it (yet).
    
    Major things that changed between the standards that affect folly::symbolizer:
    - new forms DW_FORM_addrx*, DW_FORM_loclistx, DW_FORM_rnglistx, DW_FORM_strx*, whose values are interpreted against new CU attributes DW_AT_addr_base, DW_AT_loclists_base, DW_AT_rnglists_base, DW_AT_str_offsets_base
    - The .debug_line line header format is completely re-written and the constraint that the file register must be >= 1 was lifted.
    - DWARF5 `.debug_loclists` replaces DWARF4 `.debug_ranges`
    
    Differential Revision: D25521092
    
    fbshipit-source-id: 5b48e8abed495f379d8b119177913f55ae11bd2b
    490b287c
Elf.h 10.4 KB