Page MenuHomePhabricator

labath (Pavel Labath)
User

Projects

User does not belong to any projects.

User Details

User Since
Jun 4 2013, 6:02 AM (468 w, 4 d)

Recent Activity

Tue, May 10

labath added inline comments to D124409: Filter non-external static members from SBType::GetFieldAtIndex..
Tue, May 10, 5:54 AM · Restricted Project, Restricted Project

Mon, May 9

labath committed rGa49d5e976e6d: [lldb/test] Remove superfluous -std=c++11 from tests (authored by labath).
[lldb/test] Remove superfluous -std=c++11 from tests
Mon, May 9, 11:10 AM · Restricted Project
labath committed rGac7747ef281c: [lldb/test] Append CXXFLAGS_EXTRAS last in Makefile.rules (authored by labath).
[lldb/test] Append CXXFLAGS_EXTRAS last in Makefile.rules
Mon, May 9, 10:35 AM · Restricted Project
labath committed rG8abfa5119add: [lldb/test] Fix TestCppIncompleteTypeMembers.py (authored by labath).
[lldb/test] Fix TestCppIncompleteTypeMembers.py
Mon, May 9, 8:12 AM · Restricted Project
labath committed rGfc440f27cd50: Filter non-external static members from SBType::GetFieldAtIndex. (authored by Sigurur sgeirsson <siggi@alpheus.dev>).
Filter non-external static members from SBType::GetFieldAtIndex.
Mon, May 9, 3:34 AM · Restricted Project
labath closed D124409: Filter non-external static members from SBType::GetFieldAtIndex..
Mon, May 9, 3:34 AM · Restricted Project, Restricted Project
labath committed rGae7fe65cf65d: [lldb/DWARF] Fix linking direction in CopyUniqueClassMethodTypes (authored by labath).
[lldb/DWARF] Fix linking direction in CopyUniqueClassMethodTypes
Mon, May 9, 2:53 AM · Restricted Project
labath closed D124370: [lldb/DWARF] Fix linking direction in CopyUniqueClassMethodTypes.
Mon, May 9, 2:53 AM · Restricted Project, Restricted Project
labath added a comment to D122975: parallelize calling of Module::PreloadSymbols().

or rethink the do-tasks-while-you-wait idea.

Mon, May 9, 2:47 AM · Restricted Project, Restricted Project
labath added a comment to D122975: parallelize calling of Module::PreloadSymbols().

I'm afraid I had to revert this, as it was causing hangs in TestMultipleDebuggers.py.

Mon, May 9, 2:23 AM · Restricted Project, Restricted Project
labath added a reverting change for rGb7d807dbcff0: [lldb] parallelize calling of Module::PreloadSymbols(): rGfa593b079b76: Revert "[lldb] parallelize calling of Module::PreloadSymbols()".
Mon, May 9, 2:11 AM · Restricted Project
labath committed rGfa593b079b76: Revert "[lldb] parallelize calling of Module::PreloadSymbols()" (authored by labath).
Revert "[lldb] parallelize calling of Module::PreloadSymbols()"
Mon, May 9, 2:11 AM · Restricted Project
labath added a reverting change for D122975: parallelize calling of Module::PreloadSymbols(): rGfa593b079b76: Revert "[lldb] parallelize calling of Module::PreloadSymbols()".
Mon, May 9, 2:11 AM · Restricted Project, Restricted Project
labath accepted D124947: Allow `target create` with no local file.
Mon, May 9, 1:30 AM · Restricted Project, Restricted Project
labath added a comment to D124760: [lldb] Fix ppc64 detection in lldb.

Sure, that's great.

Mon, May 9, 1:27 AM · Restricted Project, Restricted Project

Wed, May 4

labath added a comment to D124370: [lldb/DWARF] Fix linking direction in CopyUniqueClassMethodTypes.

@clayborg, @shafik, what do you make of this version?

Wed, May 4, 8:53 AM · Restricted Project, Restricted Project
labath accepted D124579: Make partial function name matching match on context boundaries.
Wed, May 4, 8:43 AM · Restricted Project, Restricted Project
labath added a comment to D124922: [lldb] Inject commands into log output when directed to file.

Heh, well.. there definitely are, though a lot of things that come to mind right now are not really suitable for a first-time contributor. Is there any specific are that you would like to know (or that you know already)?

Wed, May 4, 8:42 AM · Restricted Project, Restricted Project
labath accepted D124409: Filter non-external static members from SBType::GetFieldAtIndex..

Looks good. Thanks for the patch. Do you need me to commit this for you?

Wed, May 4, 8:26 AM · Restricted Project, Restricted Project
labath added a comment to D124922: [lldb] Inject commands into log output when directed to file.

Yeah, I guess that what I am saying.

Wed, May 4, 8:22 AM · Restricted Project, Restricted Project
labath accepted D122975: parallelize calling of Module::PreloadSymbols().

Awesome. Thanks for your patience.

Wed, May 4, 8:11 AM · Restricted Project, Restricted Project
labath added a comment to D124922: [lldb] Inject commands into log output when directed to file.

Just my opinion, but I wouldn't like to complicate the logging architecture with file-only log statements and cross-channel dependencies. If you want to cross-reference some other logging channel with the executed commands then I'd say you should enable both channels. We can definitely talk about making the command feature more prominently in the log stream.

Wed, May 4, 8:08 AM · Restricted Project, Restricted Project

Tue, May 3

labath committed rG51e72570d7e1: [lldb] Fix nondeterminism in DWARFIndexCachingTest (authored by labath).
[lldb] Fix nondeterminism in DWARFIndexCachingTest
Tue, May 3, 1:30 AM · Restricted Project

Mon, May 2

labath accepted D124760: [lldb] Fix ppc64 detection in lldb.

There were probably easier ways to test this, but it's nice to have the core file nonetheless. LGTM, assuming the core is of a reasonable size.

Mon, May 2, 8:56 AM · Restricted Project, Restricted Project

Fri, Apr 29

labath added a comment to D122974: prevent ConstString from calling djbHash() more than once.

But what if I don't want StringMap to compute the hash at all? There's still that 10-15% of CPU time spent in djbHash() when debug info uses exactly[*] that (and LLDB's index cache could be modified to store it). Which means it can be useful for StringMap to allow accepting precomputed hash, and then what purpose will that HashedStringRef have?

I think that David's point was that you would use a (probably static) StringMap method to produce the hash object, and then you use the hash object to select the correct map, and also to insert the key in the map. Something like:

...

That should only produce one hash computation, right?

Yes, it would, but that's not my point. If StringMap insists on computing the hash itself and doesn't allow outside code to provide it, then that prevents the possible LLDB optimization saving the remaing 10-15% startup CPU cost by not computing the hash at all. If StringMap allows that, then this HashedStringRef idea can be easily circumvented by passing the hash directly, so it seems rather pointless. And the relevant LLDB code from this change is so small that creating HashedStringRef just for that seems like an overkill.

Fri, Apr 29, 7:35 AM · Restricted Project, Restricted Project, Restricted Project
labath added a comment to D122974: prevent ConstString from calling djbHash() more than once.

...

struct HashedStringRef {
  const llvm::StringRef str;
  const unsigned full_hash;
  const uint8_t hash; 
  HashedStringRef(llvm::StringRef s) : str(s), full_hash(djbHash(str)), hash(hash(str)) {}
}

...

The external code shouldn't be able to create their own (ctor private/protected, etc) - the only way to get one is to call StringMap to produce one.

But what if I don't want StringMap to compute the hash at all? There's still that 10-15% of CPU time spent in djbHash() when debug info uses exactly[*] that (and LLDB's index cache could be modified to store it). Which means it can be useful for StringMap to allow accepting precomputed hash, and then what purpose will that HashedStringRef have?

Fri, Apr 29, 12:01 AM · Restricted Project, Restricted Project, Restricted Project

Apr 28 2022

labath added a comment to D124606: Use `-text` git attribute instead of `text eol=...'.

Fair enough, but don't we want to enforce LF or CRLF, respectively?

Sure, but is the version control system the right tool to do that? I think it'd be better to have the test itself confirm the consistency of the data (or convert it into the right format at runtime) and not rely on magical conversions within the VC tool.

Apr 28 2022, 8:37 AM · Restricted Project, Restricted Project
labath added inline comments to D124606: Use `-text` git attribute instead of `text eol=...'.
Apr 28 2022, 7:14 AM · Restricted Project, Restricted Project
labath committed rG0cbad6635475: [lldb/DWARF] Fix a typo in 57f99d0dc3 (authored by labath).
[lldb/DWARF] Fix a typo in 57f99d0dc3
Apr 28 2022, 6:11 AM · Restricted Project
labath added inline comments to D123580: [libc++] Use bit field for checking if string is in long or short mode.
Apr 28 2022, 6:09 AM · Restricted Project, Restricted Project, Restricted Project
labath added a comment to D124606: Use `-text` git attribute instead of `text eol=...'.

I believe (based on some similar issues I was solving in lldb) that -text instead of binary is sufficient to prevent git from fidlling with the contents, while maintaining the ability to diff the files.

Apr 28 2022, 4:30 AM · Restricted Project, Restricted Project
labath added a comment to D124198: [LLDB][Unwind] Add stack scanning as fallback unwind plan if no symbol file is available..

So there is real benefit to doing these checks IMHO as it can help us get back on track in live debug sessions. Core file sessions results will vary depending on it we actually have the original object files or not, many times we do not have this info, in which case we would just enable RA search and we might be able to unwind the PC, but not other registers if we can't actually find the prologue or if we don't have stack frame details from breakpad

Apr 28 2022, 3:05 AM · Restricted Project, Restricted Project
labath retitled D124370: [lldb/DWARF] Fix linking direction in CopyUniqueClassMethodTypes from [lldb] Fix PR54761 to [lldb/DWARF] Fix linking direction in CopyUniqueClassMethodTypes.
Apr 28 2022, 2:35 AM · Restricted Project, Restricted Project
labath updated the diff for D124370: [lldb/DWARF] Fix linking direction in CopyUniqueClassMethodTypes.

Here's the updated version. I'll place my new findings into the patch
description.

Apr 28 2022, 2:34 AM · Restricted Project, Restricted Project
labath committed rG57f99d0dc387: [lldb] Reduce duplication in DWARFASTParserClang::CopyUniqueClassMethodTypes (authored by labath).
[lldb] Reduce duplication in DWARFASTParserClang::CopyUniqueClassMethodTypes
Apr 28 2022, 1:59 AM · Restricted Project
labath accepted D124535: [lldb] Fix crash when launching in terminal.

One could add a unit test for the CFD overload, though, as this appears to be the only callsite (or other callsites were equally untested and broken), we could also remove it altogether.

Apr 28 2022, 1:23 AM · Restricted Project, Restricted Project
labath added a comment to D124579: Make partial function name matching match on context boundaries.

Yeah, this was very surprising.

Apr 28 2022, 1:06 AM · Restricted Project, Restricted Project
labath accepted D124572: Fix the encoding and decoding of UniqueCStringMap<T> objects when saved to cache files..
Apr 28 2022, 12:37 AM · Restricted Project, Restricted Project

Apr 27 2022

labath committed rGeeaa3b547853: [lldb] Remove sanity check from TestWithLimitDebugInfo (authored by labath).
[lldb] Remove sanity check from TestWithLimitDebugInfo
Apr 27 2022, 7:03 AM · Restricted Project
labath committed rG089a1d9deba5: [lldb] Fix TestWithLimitDebugInfo.py (authored by labath).
[lldb] Fix TestWithLimitDebugInfo.py
Apr 27 2022, 6:09 AM · Restricted Project
labath committed rGf513b5fc47df: [lldb] Make test names unique (authored by labath).
[lldb] Make test names unique
Apr 27 2022, 6:09 AM · Restricted Project
labath added a comment to D124409: Filter non-external static members from SBType::GetFieldAtIndex..

For future reference, it's better to generate a full diff when uploading a patch manually. Here are some ways to do that.

Apr 27 2022, 5:32 AM · Restricted Project, Restricted Project
labath added a comment to D124471: Disable symbol on-demand feature for Windows.

FWIW, I don't think that this feature, as it is implemented right now, has any chance of working on windows. Windows does not have the equivalent of .symtab (only .dynsym), so we cannot use that as a poor man's debug info substitute -- the debug info is either there -- or it isn't.

Apr 27 2022, 4:53 AM · Restricted Project, Restricted Project

Apr 26 2022

labath planned changes to D124370: [lldb/DWARF] Fix linking direction in CopyUniqueClassMethodTypes.

So I believe the reason we need to be able to add methods to a class is for templates. Templates in DWARF are really poorly emitted all in the name of saving space. There is no full definition of template classes that get emitted, just a class definition with _only_ the methods that the user used in the current compile unit. DWARF doesn't really support emitting a templatized definition of a class in terms of a type T, it will always emit instantiations of the type T directly. So in LLDB we must create a template class like "std::vector<int>" and say it has no member functions, and then add each member function as a type specific specialization due to how the types must be created in the clang::ASTContext.

in one DWARF compile unit you end up having say "std::vector<int>::clear()" and in another you would have "std::vector<int>::erase()". In order to make the most complete definition of template types we need to find all "std::vector<int>" definitions and manually add any method that we haven't already seen, otherwise we end up not being able to call methods that might exist. Of course calling template functions is already fraught with danger since most are inlined if they come from the STL, but if the user asks for the class definition for "std::vector<int>", we should show all that we can. Can you make sure this patch doesn't hurt that functionality? We must have a test for it.

So we can't just say we will accept just one class definition if we have template types. Given this information, let me know what you think of your current patch

Apr 26 2022, 8:36 AM · Restricted Project, Restricted Project
labath accepted D121631: Introduce new symbol on-demand for debug info.
Apr 26 2022, 6:06 AM · Restricted Project, Restricted Project

Apr 25 2022

labath accepted D124430: [lldb] Remove Python 2 checks from the test suite.
Apr 25 2022, 10:40 PM · Restricted Project, Restricted Project
labath accepted D124429: [lldb] Remove Python 2 support from the ScriptInterpreter plugin.

Woohoo

Apr 25 2022, 10:34 PM · Restricted Project, Restricted Project
labath requested review of D124370: [lldb/DWARF] Fix linking direction in CopyUniqueClassMethodTypes.
Apr 25 2022, 2:52 AM · Restricted Project, Restricted Project

Apr 22 2022

labath added a comment to D121631: Introduce new symbol on-demand for debug info.

Thanks, for your patience. Overall, I'd say this looks pretty clean now -- much cleaner than I originally thought it could be. I don't have any further comments here.

Apr 22 2022, 2:21 AM · Restricted Project, Restricted Project
labath accepted D124110: Refactor protected virtual functions from SymbolFile into new SymbolFileActual class..

Yes, that's pretty much what I had in mind. Thanks.

Apr 22 2022, 2:08 AM · Restricted Project, Restricted Project
labath added a comment to D124198: [LLDB][Unwind] Add stack scanning as fallback unwind plan if no symbol file is available..

The patch description could definitely use more details about the motivation for the change, and a description of how it works. Apart from the fact that it uses the raSearch feature I introduced a while back, I don't know much about how it works (and given the planned changes, I am not going to try to understand that), but I think I can provide some details/thoughts about the motivation.

Apr 22 2022, 1:55 AM · Restricted Project, Restricted Project

Apr 21 2022

labath committed rG1056c56786c1: [lldb] Adjust libc++ string formatter for changes in D123580 (authored by labath).
[lldb] Adjust libc++ string formatter for changes in D123580
Apr 21 2022, 5:18 AM · Restricted Project
labath closed D124113: [lldb] Adjust libc++ string formatter for changes in D123580.
Apr 21 2022, 5:18 AM · Restricted Project, Restricted Project
labath added a comment to D124113: [lldb] Adjust libc++ string formatter for changes in D123580.

LGTM assuming you checked that it actually works with my patch applied. Do you want to land your patch first, or should we do it the other way around?

Apr 21 2022, 5:06 AM · Restricted Project, Restricted Project
labath added a comment to D124110: Refactor protected virtual functions from SymbolFile into new SymbolFileActual class..

I might suggest we rename things like suggested in my inline comment, and then have the "SymbolFile.h" class just include the extra needed header file? Many of the changes in this diff would just go away.

Apr 21 2022, 2:55 AM · Restricted Project, Restricted Project
labath updated the diff for D124155: [lldb] Add tests which simulate the various std::string layouts.

remove the stray binary

Apr 21 2022, 2:23 AM · Restricted Project, Restricted Project
labath requested review of D124155: [lldb] Add tests which simulate the various std::string layouts.
Apr 21 2022, 2:22 AM · Restricted Project, Restricted Project
labath added inline comments to D124113: [lldb] Adjust libc++ string formatter for changes in D123580.
Apr 21 2022, 1:41 AM · Restricted Project, Restricted Project
labath updated the diff for D124113: [lldb] Adjust libc++ string formatter for changes in D123580.
  • address review comments
Apr 21 2022, 1:38 AM · Restricted Project, Restricted Project

Apr 20 2022

labath requested review of D124113: [lldb] Adjust libc++ string formatter for changes in D123580.
Apr 20 2022, 11:59 AM · Restricted Project, Restricted Project
labath added inline comments to D123580: [libc++] Use bit field for checking if string is in long or short mode.
Apr 20 2022, 3:49 AM · Restricted Project, Restricted Project, Restricted Project
labath accepted D123340: Applying clang-tidy modernize-use-override over LLDB.

Yeah, I suppose we can do that. If this turns out to be more widespread, then I'd rather disable the tidy check (or perhaps the clang warning) for the unittest files instead.

Apr 20 2022, 2:38 AM · Restricted Project, Restricted Project
labath accepted D124061: [LLDB][NativePDB] Fix the case when S_DEFRANGE_SUBFIELD_REGISTERs are out of order..

seems reasonable

Apr 20 2022, 2:13 AM · Restricted Project, Restricted Project

Apr 14 2022

labath accepted D123092: [LLDB][NativePDB] Fix inline line info in line table.
Apr 14 2022, 10:41 AM · Restricted Project, Restricted Project
labath accepted D122943: [LLDB][NativePDB] Fix a crash when S_DEFRANGE_SUBFIELD_REGISTER descirbes a simple type.
Apr 14 2022, 10:40 AM · Restricted Project, Restricted Project
labath added a comment to D121631: Introduce new symbol on-demand for debug info.

Yes, I think that's exactly what I had in mind. Basically, the idea is to structure things such that the ondemand class can sit between the actual symbol file class and the outside world, but that it does not (and cannot) interfere with any of the interactions that happen inside a symbol file class. If it works, I think that kind of a setup would be much cleaner/understandable. As it stands now, one has to consider the possibility that any action inside the real symbol file can reenter the ondemand instance, which makes it harder to reason about.

Apr 14 2022, 2:38 AM · Restricted Project, Restricted Project
labath added a comment to D123401: [lldb] Fix debug_info decorators for NO_DEBUG_INFO_TESTCASE.

Thanks.

Apr 14 2022, 2:00 AM · Restricted Project, Restricted Project

Apr 13 2022

labath committed rG7d70b1a4058c: [lldb] Fixup af921006d3792f for non-linux platforms (authored by labath).
[lldb] Fixup af921006d3792f for non-linux platforms
Apr 13 2022, 6:39 AM · Restricted Project
labath committed rGaf921006d379: [lldb] Remove the global platform list (authored by labath).
[lldb] Remove the global platform list
Apr 13 2022, 5:41 AM · Restricted Project
labath closed D120810: [lldb] Remove the global platform list.
Apr 13 2022, 5:41 AM · Restricted Project, Restricted Project

Apr 12 2022

labath committed rG45428412fd7c: [lldb] Adjust libc++ string formatter for changes in D122598 (authored by labath).
[lldb] Adjust libc++ string formatter for changes in D122598
Apr 12 2022, 6:44 AM · Restricted Project
labath accepted D123582: [lldb][AArch64] Automatically add all extensions to disassembler.

This is great. Thanks for doing that.

Apr 12 2022, 4:42 AM · Restricted Project, Restricted Project
labath added a comment to D123020: increase timeouts if running on valgrind.

Based on that 'introduce' comment I expect the part that you're not aware of is that all 4 of those simple commits I pushed directly changed code that had been written by me. So I still think I was following the guidelines, and I got an explicit review for all changes where I had any uncertainty, but as I said if it's expected that I'll get explicit review even for simple changes in code I'm familiar with, I can do that.

Apr 12 2022, 2:12 AM · Restricted Project, Restricted Project
labath added a comment to D121631: Introduce new symbol on-demand for debug info.

I am trying to get rid of the friendship declaration and the forwarding of protected methods. I have no issue with making GetCompileUnitAtIndex virtual -- that is pretty much a necessity for this feature (*). However, SetCompileUnitAtIndex seems like an internal implementation detail of a SymbolFile instance (that's why it's protected), and it would be better if the new class didn't have to touch it. I wouldn't call the new class the "real" symbol file. I don't see it as any more real as any other subclass. The way I'd look at it is that the new class just contains some helpful implementation that can be useful to a specific symbol file class. An individual symbol file class may choose to use it, but it could also implement the pure SymbolFile interface is a completely different way, if it knows how.

Apr 12 2022, 1:58 AM · Restricted Project, Restricted Project

Apr 11 2022

labath added a comment to D121631: Introduce new symbol on-demand for debug info.

I'm looking at the SymbolFileOnDemand friendship and the forwarding of protected methods (mostly dealing with compile unit lists). Does this by any chance have something to do with the fact that there are now two compile unit lists (one in the actual symbol file, and one in the wrapping ondemand class? Would it be possible to avoid that by making SymbolFile a stateless interface (just methods, no member variables), and having a putting the member variables and other utility functions into a separate class that the real symbol files would inherit from? Then only SymbolFileOnDemand would inherit from SymbolFile directly, and it would only add the state that it needs (the bool flag, and the actual symbol file pointer).

Apr 11 2022, 6:00 AM · Restricted Project, Restricted Project
labath accepted D123128: don't extra notify ModulesDidLoad() from LoadModuleAtAddress().

Cool. Thanks.

Apr 11 2022, 5:39 AM · Restricted Project, Restricted Project
labath added a comment to D123020: increase timeouts if running on valgrind.

FWIW the official policy is outlined here: https://llvm.org/docs/CodeReview.html

I'm aware of it, but as far as I can judge I was following it. Even reading it now again I see nothing that I would understand as mandating review for everything.

It does say "patches that meet likely-community-consensus requirements can be committed prior to an explicit review" and "where there is any uncertainty, a patch should be reviewed prior to being committed".
It can be hard to judge what is a likely-community-consensus without being an active member of the community, which is why it's safer to go down the pre-commit review path.

Apr 11 2022, 5:36 AM · Restricted Project, Restricted Project
labath accepted D123206: [lldb] Silence warnings about unused static variables in RegisterInfos_arm64.h.
Apr 11 2022, 5:08 AM · Restricted Project, Restricted Project

Apr 8 2022

labath added a comment to D123401: [lldb] Fix debug_info decorators for NO_DEBUG_INFO_TESTCASE.

I think this is actually a wider problem. I also ran into this recently (with triples), but didn't have time to create a patch yet. I don't think that None as the "actual" value should ever be considered a match (except when the pattern is None, I guess), regardless of whether it is a debug info variant, triple, or anything else. (None as a "pattern" should of course continue to match anything.)

Apr 8 2022, 10:20 AM · Restricted Project, Restricted Project
labath added a comment to D123340: Applying clang-tidy modernize-use-override over LLDB.

The reason for the funny /*override*/ thingy in the mock classes is that it is impossible (in the gmock version that we use) to add the override keyword to the methods overridden by the MOCK macros. Then, having override keywords on hand-written methods triggered -Winconsistent-missing-override.

Apr 8 2022, 1:25 AM · Restricted Project, Restricted Project

Apr 7 2022

labath added inline comments to D91835: [lldb] Add Python bindings to print stack traces on crashes..
Apr 7 2022, 12:44 PM · Restricted Project, Restricted Project

Apr 6 2022

labath accepted D123203: [lldb] Silence GCC warnings about missing returns after fully covered switches. NFC..

Yes, that's the way we usually deal with this.

Apr 6 2022, 4:59 AM · Restricted Project, Restricted Project
labath accepted D123205: [lldb] Silence GCC/glibc warnings about ignoring the return value of write(). NFC..

The gcc behavior is quite annoying here...

Apr 6 2022, 4:57 AM · Restricted Project, Restricted Project
labath accepted D123202: [lldb] Fix detecting warning options for GCC.

This is great. I've been bothered by this for quite a while, but I didn't realize the fix is that easy.

Apr 6 2022, 4:56 AM · Restricted Project, Restricted Project

Apr 5 2022

labath accepted D122856: [lldb] Refactor DataBuffer so we can map files as read-only.

Looks good. Thanks for your patience.

Apr 5 2022, 12:30 PM · Restricted Project, Restricted Project
labath added a comment to D123128: don't extra notify ModulesDidLoad() from LoadModuleAtAddress().

Note that this patch could have been shorter if I simply changed LoadModuleAtAddress() to always pass false for notify (all callers currently call ModulesDidLoad() afterwards) and added a note to LoadModuleAtAddress() docs about it, but I don't know if that's a good design choice.

Apr 5 2022, 7:46 AM · Restricted Project, Restricted Project
labath requested review of D120810: [lldb] Remove the global platform list.
Apr 5 2022, 7:36 AM · Restricted Project, Restricted Project
labath updated the diff for D120810: [lldb] Remove the global platform list.

Reopening, since the last attempt was quite some time ago, and the rebase was
non-trivial.

Apr 5 2022, 7:35 AM · Restricted Project, Restricted Project
labath reopened D120810: [lldb] Remove the global platform list.
Apr 5 2022, 7:35 AM · Restricted Project, Restricted Project
labath added a comment to D122975: parallelize calling of Module::PreloadSymbols().

I'd like to understand what is the precise thing that you're trying to optimise. If there is like a single hot piece of code that we want to optimise, then we might be able to come up with an different approach (a'la PrefetchModuleSpecs) to achieve the same thing.

The scenario is a repeated lldb start with index cache enabled (and so everything necessary cached), the debugged app is debug build of LibreOffice Calc (~100 medium-sized C++ libraries). 90% of the CPU time is spent in LoadFromCache() calls, because 70% of the CPU time is spent in ConstString (and that's after my ConstString optimizations). I don't think there's any other way to make it faster other than parallelizing it, although parallelizing only LoadFromCache() should be enough and I'd expect that to be limited enough to be safe if you expect the lldb codebase is not generally thread-safe. In this patch I parallelized higher because it was simple to do it up there, and I don't know how to easily get at all the LoadFromCache() calls (especially the one called from SymbolFileDWARFDebugMap is relatively deep). If you know how to parallelize only that, that works for me too.

Apr 5 2022, 2:47 AM · Restricted Project, Restricted Project
labath committed rGdbb158ebf4e3: Remove top-level using directives from Transforms/IPO headers (authored by labath).
Remove top-level using directives from Transforms/IPO headers
Apr 5 2022, 2:23 AM · Restricted Project, Restricted Project
labath committed rGe67cee09499c: [lldb] Avoid duplicate vdso modules when opening core files (authored by labath).
[lldb] Avoid duplicate vdso modules when opening core files
Apr 5 2022, 2:23 AM · Restricted Project
labath committed rG4384c96fe7eb: [lldb/linux] Handle main thread exits (authored by labath).
[lldb/linux] Handle main thread exits
Apr 5 2022, 2:23 AM · Restricted Project
labath committed rG331150a47dd5: [lldb] Move host platform implementations into the base class (authored by labath).
[lldb] Move host platform implementations into the base class
Apr 5 2022, 2:23 AM · Restricted Project
labath added a reverting change for D10800: Fix [vdso] handling on Android (x86 and aarch64): rGe67cee09499c: [lldb] Avoid duplicate vdso modules when opening core files.
Apr 5 2022, 2:23 AM
labath closed D122660: [lldb] Avoid duplicate vdso modules when opening core files.
Apr 5 2022, 2:23 AM · Restricted Project, Restricted Project
labath closed D122716: [lldb/linux] Handle main thread exits.
Apr 5 2022, 2:23 AM · Restricted Project, Restricted Project
labath closed D122898: [lldb] Move host platform implementations into the base class.
Apr 5 2022, 2:23 AM · Restricted Project, Restricted Project
labath added inline comments to D122856: [lldb] Refactor DataBuffer so we can map files as read-only.
Apr 5 2022, 1:31 AM · Restricted Project, Restricted Project
labath accepted D123073: [lldb] Change CreateMemoryInstance to take a WritableDataBuffer.

cool. thanks.

Apr 5 2022, 1:02 AM · Restricted Project, Restricted Project