llvm-project/lldb/source/Core
Walter Erquinigo fb19f11ef4 [trace][intel-pt] Scaffold the 'thread trace start | stop' commands
Depends on D90490.

The stop command is simple and invokes the new method Trace::StopTracingThread(thread).

On the other hand, the start command works by delegating its implementation to a CommandObject provided by the Trace plugin. This is necessary because each trace plugin needs different options for this command. There's even the chance that a Trace plugin can't support live tracing, but instead supports offline decoding and analysis, which means that "thread trace dump instructions" works but "thread trace start" doest. Because of this and a few other reasons, it's better to have each plugin provide this implementation.

Besides, I'm using the GetSupportedTraceType method introduced in D90490 to quickly infer what's the trace plug-in that works for the current process.

As an implementation note, I moved CommandObjectIterateOverThreads to its header so that I can use it from the IntelPT plugin. Besides, the actual start and stop logic for intel-pt is not part of this diff.

Reviewed By: clayborg

Differential Revision: https://reviews.llvm.org/D90729
2020-11-18 18:24:36 -08:00
..
Address.cpp [lldb] Switch Section-dumping code to raw_ostream 2020-05-14 11:59:18 +02:00
AddressRange.cpp [lldb][NFC] Fix all formatting errors in .cpp file headers 2020-01-24 08:52:55 +01:00
AddressResolver.cpp [lldb][NFC] Fix all formatting errors in .cpp file headers 2020-01-24 08:52:55 +01:00
AddressResolverFileLine.cpp [lldb][NFC] Fix all formatting errors in .cpp file headers 2020-01-24 08:52:55 +01:00
AddressResolverName.cpp [lldb][NFC] Make all CompilerDeclContext parameters references instead of pointers 2020-02-18 08:58:36 +01:00
CMakeLists.txt [CMake] Use find_library for ncurses 2020-08-31 20:06:21 -07:00
Communication.cpp [lldb] Don't use static locals for return value storage in some *AsCString functions 2020-07-30 12:17:42 +02:00
CoreProperties.td [lldb] Display autosuggestion part in gray if there is one possible suggestion 2020-08-14 11:37:49 +02:00
Debugger.cpp [lldb] Make GetSelectedOrDummyTarget return the target by reference (NFC) 2020-11-09 15:42:27 -08:00
Disassembler.cpp [trace][intel-pt] Implement the basic decoding functionality 2020-11-05 18:38:03 -08:00
DumpDataExtractor.cpp [lldb] Refactor character printing in DumpDataExtractor 2020-07-14 14:22:03 +02:00
DumpRegisterValue.cpp Make llvm::StringRef to std::string conversions explicit. 2020-01-28 23:25:25 +01:00
DynamicLoader.cpp [lldb] Delete copy operations on PluginInterface class 2020-10-09 10:37:09 +02:00
EmulateInstruction.cpp [lldb][NFC] Fix all formatting errors in .cpp file headers 2020-01-24 08:52:55 +01:00
FileLineResolver.cpp [lldb][NFC] Fix all formatting errors in .cpp file headers 2020-01-24 08:52:55 +01:00
FileSpecList.cpp [lldb][NFC] Fix all formatting errors in .cpp file headers 2020-01-24 08:52:55 +01:00
FormatEntity.cpp [lldb] NFC: Fix trivial typo in comments, documents, and messages 2020-04-07 01:06:16 +09:00
Highlighter.cpp [lldb][NFC] Fix all formatting errors in .cpp file headers 2020-01-24 08:52:55 +01:00
IOHandler.cpp [lldb] Return FileSP and StreamFileSP by value in IOHandler (NFC) 2020-09-16 21:15:05 -07:00
IOHandlerCursesGUI.cpp [lldb/Gui] zero-initialize children_stop_id 2020-09-02 20:05:17 -07:00
Mangled.cpp [lldb][Core] Remove dead codepath in Mangled 2020-05-26 17:12:20 -07:00
Module.cpp [lldb/Module] Allow for the creation of memory-only modules 2020-07-14 08:45:44 -07:00
ModuleChild.cpp [lldb][NFC] Fix all formatting errors in .cpp file headers 2020-01-24 08:52:55 +01:00
ModuleList.cpp [lldb] Report old modules from ModuleList::ReplaceEquivalent 2020-10-30 15:14:32 -04:00
Opcode.cpp [lldb][NFC] Fix all formatting errors in .cpp file headers 2020-01-24 08:52:55 +01:00
PluginManager.cpp [trace][intel-pt] Scaffold the 'thread trace start | stop' commands 2020-11-18 18:24:36 -08:00
RichManglingContext.cpp [lldb][NFC] Fix all formatting errors in .cpp file headers 2020-01-24 08:52:55 +01:00
SearchFilter.cpp [lldb] Remove redundant WithFormat suffixes (NFC) 2020-07-20 23:00:32 -07:00
Section.cpp [lldb][NFC] Overload raw_ostream operator << for ConstString 2020-05-22 11:24:48 +02:00
SourceManager.cpp [lldb] Modernize away some snprintf calls 2020-07-27 14:27:54 +02:00
StreamAsynchronousIO.cpp [lldb][NFC] Fix all formatting errors in .cpp file headers 2020-01-24 08:52:55 +01:00
StreamFile.cpp [lldb][NFC] Fix all formatting errors in .cpp file headers 2020-01-24 08:52:55 +01:00
UserSettingsController.cpp [lldb][NFC] Fix all formatting errors in .cpp file headers 2020-01-24 08:52:55 +01:00
Value.cpp [lldb][NFC] Fix compiler warnings after removal of eValueTypeVector 2020-11-05 17:17:33 +01:00
ValueObject.cpp [lldb] Delete Value::Vector class 2020-11-04 10:21:56 +01:00
ValueObjectCast.cpp Unify the return value of GetByteSize to an llvm::Optional<uint64_t> (NFC-ish) 2020-07-27 13:26:35 -07:00
ValueObjectChild.cpp [lldb][NFC] Fix compiler warnings after removal of eValueTypeVector 2020-11-05 17:17:33 +01:00
ValueObjectConstResult.cpp Unify the return value of GetByteSize to an llvm::Optional<uint64_t> (NFC-ish) 2020-07-27 13:26:35 -07:00
ValueObjectConstResultCast.cpp [lldb][NFC] Fix all formatting errors in .cpp file headers 2020-01-24 08:52:55 +01:00
ValueObjectConstResultChild.cpp [lldb][NFC] Fix all formatting errors in .cpp file headers 2020-01-24 08:52:55 +01:00
ValueObjectConstResultImpl.cpp [lldb] Delete the SharingPtr class 2020-02-11 13:23:18 +01:00
ValueObjectDynamicValue.cpp Unify the return value of GetByteSize to an llvm::Optional<uint64_t> (NFC-ish) 2020-07-27 13:26:35 -07:00
ValueObjectList.cpp [lldb] Delete the SharingPtr class 2020-02-11 13:23:18 +01:00
ValueObjectMemory.cpp [lldb][NFC] Fix compiler warnings after removal of eValueTypeVector 2020-11-05 17:17:33 +01:00
ValueObjectRegister.cpp Unify the return value of GetByteSize to an llvm::Optional<uint64_t> (NFC-ish) 2020-07-27 13:26:35 -07:00
ValueObjectSyntheticFilter.cpp [lldb] Add missings moves where appropiate (NFC) 2020-08-10 21:02:11 -07:00
ValueObjectVariable.cpp [lldb] Delete Value::Vector class 2020-11-04 10:21:56 +01:00