This is an archive of the discontinued LLVM Phabricator instance.

[lldb/DWARF] Add support for DW_AT_loclists_base&DW_FORM_loclistx
ClosedPublic

Authored by labath on Dec 10 2019, 6:44 AM.

Details

Summary

This adds support for DWARF5 location lists which are specified
indirectly, via an index into the debug_loclists offset table. This
includes parsing the DW_AT_loclists_base attribute which determines the
location of this offset table, and support for new form DW_FORM_loclistx
which is used in conjuction with DW_AT_location to refer to the location
lists in this way.

The code uses the llvm class to parse the offset information, and I've
also tried to structure it similarly to how the relevant llvm
functionality works.

Event Timeline

labath created this revision.Dec 10 2019, 6:44 AM
Herald added a project: Restricted Project. · View Herald TranscriptDec 10 2019, 6:44 AM
aprantl accepted this revision.Dec 10 2019, 9:06 AM
aprantl added inline comments.
lldb/source/Plugins/SymbolFile/DWARF/DWARFUnit.cpp
462

For symmetry, we could early-exitify this function, too.

This revision is now accepted and ready to land.Dec 10 2019, 9:06 AM
labath marked 2 inline comments as done.Dec 11 2019, 1:53 AM
labath added inline comments.
lldb/source/Plugins/SymbolFile/DWARF/DWARFUnit.cpp
462

will do.

This revision was automatically updated to reflect the committed changes.
labath marked an inline comment as done.