llvm-project/lldb/source/Plugins
Pavel Labath 553558292e [lldb/dyld-posix] Avoid reading the module list in inconsistent states
New glibc versions (since 2.34 or including this
<ed3ce71f5c>
patch) trigger the rendezvous breakpoint after they have already added
some modules to the list. This did not play well with our dynamic
loader plugin which was doing a diff of the the reported modules in the
before (RT_ADD) and after (RT_CONSISTENT) states. Specifically, it
caused us to miss some of the modules.

While I think the old behavior makes more sense, I don't think that lldb
is doing the right thing either, as the documentation states that we
should not be expecting a consistent view in the RT_ADD (and RT_DELETE)
states.

Therefore, this patch changes the lldb algorithm to compare the module
list against the previous consistent snapshot. This fixes the previous
issue, and I believe it is more correct in general. It also reduces the
number of times we are fetching the module info, which should speed up
the debugging of processes with many shared libraries.

The change in RefreshModules ensures we don't broadcast the loaded
notification for the dynamic loader (ld.so) module more than once.

Differential Revision: https://reviews.llvm.org/D128264
2022-07-01 08:08:22 +02:00
..
ABI Use value_or instead of getValueOr. NFC 2022-06-29 21:55:02 -07:00
Architecture [lldb] Rename Logging.h to LLDBLog.h and clean up includes 2022-02-03 14:47:01 +01:00
Disassembler [lld] Don't use Optional::hasValue (NFC) 2022-06-26 19:29:40 -07:00
DynamicLoader [lldb/dyld-posix] Avoid reading the module list in inconsistent states 2022-07-01 08:08:22 +02:00
ExpressionParser Don't use Optional::hasValue (NFC) 2022-06-20 11:33:56 -07:00
Instruction [lldb] Remove usages of case-insensitive c-string functions 2022-03-29 17:59:17 +02:00
InstrumentationRuntime [lldb] Migrate runtime instrumentation plugins to ReportWarning 2022-03-16 23:20:58 -07:00
JITLoader [lldb] Rename Logging.h to LLDBLog.h and clean up includes 2022-02-03 14:47:01 +01:00
Language [lldb] Fix libc++ string formatter for the "unstable" layout 2022-06-30 16:44:54 +02:00
LanguageRuntime Have CommandObjectParsed check for "commands that take no arguments". 2022-06-27 15:14:41 -07:00
MemoryHistory [lldb] Migrate runtime instrumentation plugins to ReportWarning 2022-03-16 23:20:58 -07:00
ObjectContainer [lldb] Remove ConstString from GetPluginNameStatic of some plugins 2021-10-21 12:58:45 +02:00
ObjectFile [lld] Don't use Optional::hasValue (NFC) 2022-06-26 19:29:40 -07:00
OperatingSystem [lldb] Rename Logging.h to LLDBLog.h and clean up includes 2022-02-03 14:47:01 +01:00
Platform Don't use Optional::getValue (NFC) 2022-06-20 23:35:53 -07:00
Process [PATCH] [lldb-server] Skip shared regions for memory allocation 2022-07-01 13:45:42 +08:00
REPL [LLDB] Applying clang-tidy modernize-use-equals-default over LLDB 2022-03-31 13:21:49 -07:00
ScriptInterpreter [lldb] Fix modernize-use-override warnings (NFC) 2022-06-17 15:08:02 -07:00
StructuredData [lldb] Report debugger diagnostics as events 2022-03-16 08:33:01 -07:00
SymbolFile [LLDB][NativePDB] Return LLDB_INVALID_ADDRESS in PdbIndex::MakeVirtualAddress when input is invalid due to missing address info in symbol/public records. 2022-06-30 14:34:20 -07:00
SymbolVendor [lldb] Use value_or instead of getValueOr (NFC) 2022-06-19 09:12:01 -07:00
SystemRuntime [lldb] Rename Logging.h to LLDBLog.h and clean up includes 2022-02-03 14:47:01 +01:00
Trace Use value_or instead of getValueOr. NFC 2022-06-29 21:55:02 -07:00
TraceExporter [lldb] Fix unused variable warning in TraceHTR (NFC) 2022-06-29 21:29:50 -07:00
TypeSystem Don't use Optional::hasValue (NFC) 2022-06-20 11:33:56 -07:00
UnwindAssembly Update the CFA to use $sp when $fp is restored on arm64 2022-05-04 14:54:17 -07:00
CMakeLists.txt [lldb] Add a C language REPL to test LLDB's REPL infrastructure 2021-09-23 19:31:02 +02:00
Plugins.def.in