User Details
- User Since
- Dec 1 2020, 2:41 PM (130 w, 1 d)
Yesterday
- Add more rigorous testing. Specifically, I'm testing every possible place where we we can bail early from DWARFAbbreviationDeclaration::extract.
- Replace the writeBadAbbreviationDeclarationData with more specific functions to handle both malformed input and input that is too large (both kinds of LEB128 extraction errors).
Very straightforward. LGTM.
Tue, May 30
The change itself looks fine and is fairly mechanical. Easy to verify.
I've identified the root cause and I aim to address it in a separate change before this change goes in: https://reviews.llvm.org/D151755
Looks like my concerns were addressed. Thanks!
LGTM
LLDB_LOGF -> LLDB_LOG to avoid a temporary string construction.
Ok, the pre-submission checks failing are actually due to this change. Specifically, parsing the debug_abbrev section of the objects produced by these tests leads to an infinite loop. It goes as follows:
- We fail to get an ULEB128 value for the code because the contents of the debug_abbrev are invalid. The DataExtractor thus returns 0, signaling to the DWARFAbbreviationDeclaration parsing code that were done with this DWARFAbbreviationDeclaration.
- The DWARFAbbreviationDeclarationSet sees it's done and returns an empty Set to the DWARFDebugAbbrev parsing code. The offset is still at 0, so it's still technically a valid offset for the DataExtractor. So we continue on...
Remove use of std::call_once where not needed.
Sun, May 28
Sat, May 27
After reading though the code and thinking about it, I believe this change is appropriate. It may or may not have a measurable impact on performance, but my bet is that it doesn't make it worse. I suppose you could stress test the C++ formatters if you really wanted to know though. Either way, thank you for doing this work!
Fri, May 26
Sounds good
What is the motivation behind this change?
Thu, May 25
I think it's good to improve the error messaging but I think we can probably do better. "Function caller" is specific to the internals of LLDB and isn't really meaningful for many users. It's also somewhat confusing from a user's perspective when the expression you're running isn't calling a function. For example:
Address feedback from @jhenderson
Convert return type to std::vector<llvm::StringRef>
Actually fix code so this thing compiles correctly
Thanks for doing this work!
Wed, May 24
I have no objections but you should probably wait for others to take another look.
Tue, May 23
EXPECT_TRUE -> ASSERT_TRUE when checking pointers
Mon, May 22
LGTM
Alright, looks good to me. Let's see what the bots think!
Ok, this is a pretty big patch so we probably don't want to leave it in review for a long time or it just gets harder to land correctly.
Looks like you're mostly moving things around which is fine. The bug that you're fixing is with thread handling in MultiplexerScriptedProcess right? That looks fine to me too.
- Yank common setup into its own function
- sizeof(void *) -> sizeof(uint64_t)
- Don't use auto where confusing
Fri, May 19
Ok, looks good to me now. Thanks!
You probably encountered this somewhere, is there a simple test we could add here? The change looks fine to me nonetheless.
Looks good! A few minor comments.
LGTM!
Thu, May 18
Bug fixes look good to me, the perf and code simplifications are also great to see. A few nits and I have one concern. Otherwise looks fine to me, I think.
Update SBModule::GetUUIDString -- I slightly changed behavior. Now the behavior matches the previous implementation exactly.