labath added a comment.

Looks pretty good. I might have split the record parsing functions into a 
separate patch, but this is not bad either.

Just one comment about error handling.



================
Comment at: 
lldb/source/Plugins/SymbolFile/Breakpad/SymbolFileBreakpad.cpp:313-314
+        BlockSP block_sp = std::make_shared<Block>(It.GetBookmark().offset);
+        FileSpec callsite_file = (*m_files)[record->CallSiteFileNum];
+        llvm::StringRef name = (*m_inline_origins)[record->OriginNum];
+        Declaration callsite(callsite_file, record->CallSiteLineNum);
----------------
In lldb, we treat (or at least try to) debug info [[ 
https://lldb.llvm.org/resources/contributing.html#error-handling-and-use-of-assertions-in-lldb
 | as "user input"]], meaning invalid/inconsistent debug info should not crash 
the debugger. While the situation is not as critical for breakpad as it is for 
dwarf (due to it not having as many producers), I think the principle remains.

It doesn't really matter much how you handle invalid records (like, it'd be 
fine if you just throw away all inline info for the affected function), but 
it'd be nice if it does not crash lldb.


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D113330

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

Reply via email to