labath marked an inline comment as done.
labath added inline comments.

================
Comment at: source/Plugins/SymbolFile/Breakpad/SymbolFileBreakpad.cpp:549
+  llvm::Optional<StackWinRecord> record = StackWinRecord::parse(*It);
+  assert(record.hasValue());
+
----------------
amccarth wrote:
> labath wrote:
> > amccarth wrote:
> > > Should we log and bail out rather than just assert?  A corrupt symbol 
> > > file shouldn't kill the debugger, right?
> > > 
> > > Also, it's Optional rather than Expected, so it seems even more plausible 
> > > to hit this.
> > This is an internal consistency check. An entry will be added to the 
> > `m_unwind_data->win` map only if it was already parsed successfully down in 
> > `ParseUnwindData`. This is parsing the same data once more, so it should 
> > always succeed.
> > 
> > Now the next question is, why parse the same data twice? :)
> > The first parse is to build an index of the ranges covered by the breakpad 
> > file. In the second pass we actually parse the undwind data. Theoretically 
> > we could avoid the second parse if we stored more data in the first one. 
> > However, here I am operating under the assumption that most record will not 
> > be touched, so it's worth to save some space for *each* record for the 
> > price of having to parse twice *some* of them. This seems like a good 
> > tradeoff intuitively, but I am don't have hard data to back that up.
> > 
> > Also, the case was much stronger for STACK CFI records (which do the same 
> > thing), as there I only have to put the STACK CFI INIT records into the map 
> > (and each INIT record is followed by a potentially large number of non-INIT 
> > records). STACK WIN records don't have an INIT records, so I have to insert 
> > all of them anyway, which makes the savings smaller, but it still seems 
> > worth it.
> Cool.  Could you just add a comment at the assertion that says a short 
> version of that.  For example, "We've already parsed it once, so it shouldn't 
> fail this time."
Will do. I'll also add the comment to the STACK CFI version of this function.


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

https://reviews.llvm.org/D67067



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

Reply via email to