[Lldb-commits] [PATCH] D107456: [lldb] Support .debug_rnglists.dwo sections in dwp file

Jan Kratochvil via Phabricator via lldb-commits lldb-commits at lists.llvm.org
Fri Aug 27 13:26:41 PDT 2021

jankratochvil accepted this revision.
jankratochvil added inline comments.
This revision is now accepted and ready to land.

Comment at: lldb/source/Plugins/SymbolFile/DWARF/DWARFUnit.cpp:556
+          " (ranges list base: 0x%" PRIx64 "): %s",
+          offset, m_ranges_base, toString(table_or_error.takeError()).c_str());
kimanh wrote:
> jankratochvil wrote:
> > One such reason can be missing DWP absolute offset for the error report. That could be returned from `GetRnglistData()`.
> > 
> If I understand your comment correctly, you are suggesting to incorporate the contribution offset into the error message of `GetRnglistData`, is that correct? However, `GetRnglistData` will only return an error message if the contribution offset cannot be read, so the contribution offset cannot be specified in the error message (and thus the absolute offset cannot be inferred) . Or maybe I'm misunderstanding your comment here?
Not so correct. The callers of `GetRnglistData` need to know the contribution offset to properly report it during parsing errors in the callers. `GetRnglistTable` can report error if `extractHeaderAndOffsets` finds invalid header data. In such case LLDB will report (with https://www.jankratochvil.net/t/debug_rnglists-dwp.s.patch):
error: debug_rnglists-dwp.s.tmp Failed to extract range list table at offset 0xc: parsing .debug_rnglists table at offset 0x0: unsupported reserved unit length of value 0xfffffff0
And one has no idea which DWO in that DWP file was invalid, that `0xc` is relative to start of contribution, not to start of the `.debug_rnglists.dwo` section. `GetRnglistData` knows the contribution offset but its caller `DWARFDebugRnglistTable` does not.
I am not sure how perfect the error messages should be so giving an approval (if I am authorized to give one) but it would be nice to improve the error reporting.

  rG LLVM Github Monorepo



More information about the lldb-commits mailing list