This adds support for DW_RLE_base_addressx, DW_RLE_startx_endx,
DW_RLE_startx_length, DW_FORM_rnglistx.
Details
- Reviewers
clayborg - Group Reviewers
Restricted Project - Commits
- rG5497f6580e6e: [LLDB] - Add support for DW_FORM_rnglistx and relative DW_RLE_* entries.
rLLDB345958: [LLDB] - Add support for DW_FORM_rnglistx and relative DW_RLE_* entries.
rL345958: [LLDB] - Add support for DW_FORM_rnglistx and relative DW_RLE_* entries.
Diff Detail
Event Timeline
Just one question about extracting the value for DW_AT_ranges. It would be nice if we just took care of extracting the value so the form value was more useful
source/Plugins/SymbolFile/DWARF/DWARFDebugInfoEntry.cpp | ||
---|---|---|
1072–1079 | Can/should we do all this work when we extract the form value so that "form_value.Unsigned()" just returns the right thing? If not, every place that gets DW_AT_ranges attribute would need to do this. |
- Addressed review comments.
source/Plugins/SymbolFile/DWARF/DWARFDebugInfoEntry.cpp | ||
---|---|---|
1072–1079 | Doing everything inside DWARFFormValue::ExtractValue would make the callers code simpler indeed, I think 'ExtractValue` ideally should not know about the debug sections. And also that would not be consistent with the other forms it reads. I am not sure if we might want to know the raw value of the DW_FORM_rnglistx one day, but with such change, we will lose such possibility. I would suggest making a helper function instead, so all the callers can use it. I did it in this patch, what do you think? |
Solution is fine. As long as we don't have to duplicate the work everywhere that needs a ranges offset.
Can/should we do all this work when we extract the form value so that "form_value.Unsigned()" just returns the right thing? If not, every place that gets DW_AT_ranges attribute would need to do this.