labath added inline comments.

================
Comment at: llvm/lib/DebugInfo/DWARF/DWARFDebugLine.cpp:323-325
+    // Treat this error as unrecoverable - we cannot be sure what any of
+    // the data represents including the length field, so cannot skip it or 
make
+    // any reasonable assumptions.
----------------
jhenderson wrote:
> labath wrote:
> > BTW, I think this error should be recoverable too. I believe the reason why 
> > the length field comes *before* the version number is specifically so that 
> > one can skip over contributions with unsupported (future) version numbers.
> > 
> > While it's hard to say what the future versions of dwarf will look like, I 
> > would expect that the committee will try very hard to avoid  making changes 
> > in the length field. I think they'd use one of the 
> > DW_LENGTH_lo_reserved..DW_LENGTH_hi_reserved-1 constants for severely 
> > incompatible changes.
> "Unrecoverable" here means don't try to parse this table, but do allow 
> parsing the next. I think the comment might be slightly misleading in this 
> regard. FWIW, a version of 0 or 1 probably doesn't have a leading length, so 
> it is definitely unrecoverable. For versions > 5, which are now checked, we 
> don't know what the structure of the header is, so although we could take a 
> guess, we'd almost certainly get it wrong and produce invalid (possibly very 
> invalid) output. I don't have a strong opinion as to whether that should be 
> an unrecoverable error or not (currently it is).
Ah, right, I see now what you mean. I agree it makes no sense to parse the 
contents of a contribution with an unrecognized version. The part about not 
being able to trust the length field threw me off, as the length of the 
contribution is the one thing we can expect to remain unchanged between dwarf 
versions.

Sorry about the false alarm.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D72158/new/

https://reviews.llvm.org/D72158



_______________________________________________
lldb-commits mailing list
lldb-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits

Reply via email to