hanchenye-llvm-project/lldb/source/Utility
Jonas Devlieghere ac25e8628c [lldb] Deal gracefully with concurrency in the API instrumentation.
Prevent lldb from crashing when multiple threads are concurrently
accessing the SB API with reproducer capture enabled.

The API instrumentation records both the input arguments and the return
value, but it cannot block for the duration of the API call. Therefore
we introduce a sequence number that allows to to correlate the function
with its result and add locking to ensure those two parts are emitted
atomically.

Using the sequence number, we can detect situations where the return
value does not succeed the function call, in which case we print an
error saying that concurrency is not (currently) supported. In the
future we might attempt to be smarter and read ahead until we've found
the return value matching the current call.

Differential revision: https://reviews.llvm.org/D92820
2020-12-10 09:37:49 -08:00
..
ARM64_DWARF_Registers.h [LLDB] Update AArch64 Dwarf and EH frame register numbers 2020-07-10 11:45:39 +05:00
ARM64_ehframe_Registers.h [LLDB] Update AArch64 Dwarf and EH frame register numbers 2020-07-10 11:45:39 +05:00
ARM_DWARF_Registers.h
ARM_ehframe_Registers.h
ArchSpec.cpp [lldb] Use the cpu subtype enum values from llvm::MachO in ArchSpec (NFC) 2020-12-03 15:10:18 -08:00
Args.cpp [lldb][NFC] Make GetShellSafeArgument simpler and faster 2020-10-26 15:29:13 +01:00
Baton.cpp
Broadcaster.cpp
CMakeLists.txt [intel-pt][trace] Implement a "get supported trace type" packet 2020-11-11 10:35:58 -08:00
CompletionRequest.cpp
Connection.cpp
ConstString.cpp [lldb] Pass ConstString by value (again) (NFC) 2020-07-23 09:08:32 -07:00
DataBufferHeap.cpp
DataBufferLLVM.cpp
DataEncoder.cpp
DataExtractor.cpp [lldb] Fix unaligned load in DataExtractor 2020-07-07 10:13:41 -07:00
Environment.cpp
Event.cpp
FileSpec.cpp
GDBRemote.cpp
IOObject.cpp
LLDBAssert.cpp
Listener.cpp
Log.cpp
Logging.cpp
NameMatches.cpp
PPC64LE_DWARF_Registers.h
PPC64_DWARF_Registers.h
ProcessInfo.cpp [lldb] Extract reproducer providers & co into their own header. 2020-08-22 10:04:27 -07:00
RegisterValue.cpp [lldb] Improve RegisterValue::GetScalarValue 2020-11-04 14:53:06 +01:00
RegularExpression.cpp
Reproducer.cpp [lldb] Move copying of files into reproducer out of process 2020-10-23 12:33:54 -07:00
ReproducerInstrumentation.cpp [lldb] Deal gracefully with concurrency in the API instrumentation. 2020-12-10 09:37:49 -08:00
ReproducerProvider.cpp [lldb] Move copying of files into reproducer out of process 2020-10-23 12:33:54 -07:00
Scalar.cpp [lldb/Utility] Polish the Scalar class 2020-08-28 11:51:25 +02:00
SelectHelper.cpp
State.cpp
Status.cpp
Stream.cpp
StreamCallback.cpp
StreamString.cpp
StringExtractor.cpp
StringExtractorGDBRemote.cpp [intel-pt][trace] Implement a "get supported trace type" packet 2020-11-11 10:35:58 -08:00
StringLexer.cpp [lldb] Eliminate unneeded value parameters in Utility (NFC) 2020-07-22 13:56:23 -07:00
StringList.cpp [lldb] Eliminate unneeded value parameters in Utility (NFC) 2020-07-22 13:56:23 -07:00
StructuredData.cpp Fix LLDB tweak in 62a47e994fcf5b73e29547d26cd9676b30cb69a3 2020-09-24 01:30:42 +02:00
TildeExpressionResolver.cpp [lldb] Return the original path when tilde expansion fails. 2020-12-02 16:01:30 -08:00
Timer.cpp
TraceOptions.cpp [intel-pt][trace] Implement a "get supported trace type" packet 2020-11-11 10:35:58 -08:00
UUID.cpp [lldb][NFC] Refactor getUUID functionality 2020-10-30 10:44:37 -07:00
UnimplementedError.cpp [lldb/Utility] Introduce UnimplementedError 2020-10-12 13:46:17 +02:00
UriParser.cpp
UserID.cpp
UserIDResolver.cpp
UuidCompatibility.h
VASprintf.cpp
VMRange.cpp
XcodeSDK.cpp [lldb] Eliminate unneeded value parameters in Utility (NFC) 2020-07-22 13:56:23 -07:00