9 #ifndef LLDB_CORE_PLUGINMANAGER_H
10 #define LLDB_CORE_PLUGINMANAGER_H
20 #include "llvm/ADT/StringRef.h"
25 #define LLDB_PLUGIN_DEFINE_ADV(ClassName, PluginName) \
26 namespace lldb_private { \
27 void lldb_initialize_##PluginName() { ClassName::Initialize(); } \
28 void lldb_terminate_##PluginName() { ClassName::Terminate(); } \
31 #define LLDB_PLUGIN_DEFINE(PluginName) \
32 LLDB_PLUGIN_DEFINE_ADV(PluginName, PluginName)
35 #define LLDB_PLUGIN_DECLARE(PluginName) \
36 namespace lldb_private { \
37 extern void lldb_initialize_##PluginName(); \
38 extern void lldb_terminate_##PluginName(); \
41 #define LLDB_PLUGIN_INITIALIZE(PluginName) lldb_initialize_##PluginName()
42 #define LLDB_PLUGIN_TERMINATE(PluginName) lldb_terminate_##PluginName()
45 class CommandInterpreter;
57 static bool RegisterPlugin(llvm::StringRef name, llvm::StringRef description,
58 ABICreateInstance create_callback);
65 static void RegisterPlugin(llvm::StringRef name, llvm::StringRef description,
66 ArchitectureCreateInstance create_callback);
70 static std::unique_ptr<Architecture>
74 static bool RegisterPlugin(llvm::StringRef name, llvm::StringRef description,
75 DisassemblerCreateInstance create_callback);
79 static DisassemblerCreateInstance
82 static DisassemblerCreateInstance
88 DynamicLoaderCreateInstance create_callback,
93 static DynamicLoaderCreateInstance
96 static DynamicLoaderCreateInstance
102 JITLoaderCreateInstance create_callback,
107 static JITLoaderCreateInstance
111 static bool RegisterPlugin(llvm::StringRef name, llvm::StringRef description,
112 EmulateInstructionCreateInstance create_callback);
117 static EmulateInstructionCreateInstance
120 static EmulateInstructionCreateInstance
124 static bool RegisterPlugin(llvm::StringRef name, llvm::StringRef description,
125 OperatingSystemCreateInstance create_callback,
128 static bool UnregisterPlugin(OperatingSystemCreateInstance create_callback);
130 static OperatingSystemCreateInstance
133 static OperatingSystemCreateInstance
137 static bool RegisterPlugin(llvm::StringRef name, llvm::StringRef description,
138 LanguageCreateInstance create_callback);
146 llvm::StringRef name, llvm::StringRef description,
148 LanguageRuntimeGetCommandObject command_callback =
nullptr,
149 LanguageRuntimeGetExceptionPrecondition precondition_callback =
nullptr);
156 static LanguageRuntimeGetCommandObject
159 static LanguageRuntimeGetExceptionPrecondition
163 static bool RegisterPlugin(llvm::StringRef name, llvm::StringRef description,
164 SystemRuntimeCreateInstance create_callback);
168 static SystemRuntimeCreateInstance
175 ObjectFileCreateMemoryInstance create_memory_callback,
176 ObjectFileGetModuleSpecifications get_module_specifications,
177 ObjectFileSaveCore save_core =
nullptr);
184 static ObjectFileCreateMemoryInstance
187 static ObjectFileGetModuleSpecifications
190 static ObjectFileCreateMemoryInstance
196 llvm::StringRef plugin_name);
202 ObjectFileGetModuleSpecifications get_module_specifications);
209 static ObjectFileGetModuleSpecifications
215 PlatformCreateInstance create_callback,
222 static PlatformCreateInstance
234 ProcessCreateInstance create_callback,
241 static ProcessCreateInstance
252 static bool RegisterPlugin(llvm::StringRef name, llvm::StringRef description,
261 static lldb::ScriptInterpreterSP
303 StructuredDataFilterLaunchInfo filter_callback =
nullptr);
311 static StructuredDataFilterLaunchInfo
313 bool &iteration_complete);
318 SymbolFileCreateInstance create_callback,
323 static SymbolFileCreateInstance
327 static bool RegisterPlugin(llvm::StringRef name, llvm::StringRef description,
328 SymbolVendorCreateInstance create_callback);
332 static SymbolVendorCreateInstance
337 llvm::StringRef name, llvm::StringRef description,
339 TraceCreateInstanceForLiveProcess create_callback_for_live_process,
340 llvm::StringRef schema);
348 static TraceCreateInstanceForLiveProcess
360 static llvm::StringRef
GetTraceSchema(llvm::StringRef plugin_name);
379 llvm::StringRef name, llvm::StringRef description,
381 ThreadTraceExportCommandCreator create_thread_trace_export_command);
392 static ThreadTraceExportCommandCreator
396 static bool RegisterPlugin(llvm::StringRef name, llvm::StringRef description,
397 UnwindAssemblyCreateInstance create_callback);
401 static UnwindAssemblyCreateInstance
405 static bool RegisterPlugin(llvm::StringRef name, llvm::StringRef description,
406 MemoryHistoryCreateInstance create_callback);
410 static MemoryHistoryCreateInstance
417 InstrumentationRuntimeGetType get_type_callback);
422 static InstrumentationRuntimeGetType
429 static bool RegisterPlugin(llvm::StringRef name, llvm::StringRef description,
444 static bool RegisterPlugin(llvm::StringRef name, llvm::StringRef description,
463 static lldb::OptionValuePropertiesSP
468 Debugger &debugger,
const lldb::OptionValuePropertiesSP &properties_sp,
471 static lldb::OptionValuePropertiesSP
475 Debugger &debugger,
const lldb::OptionValuePropertiesSP &properties_sp,
478 static lldb::OptionValuePropertiesSP
482 Debugger &debugger,
const lldb::OptionValuePropertiesSP &properties_sp,
485 static lldb::OptionValuePropertiesSP
489 Debugger &debugger,
const lldb::OptionValuePropertiesSP &properties_sp,
492 static lldb::OptionValuePropertiesSP
496 Debugger &debugger,
const lldb::OptionValuePropertiesSP &properties_sp,
499 static lldb::OptionValuePropertiesSP
504 Debugger &debugger,
const lldb::OptionValuePropertiesSP &properties_sp,
507 static lldb::OptionValuePropertiesSP
512 Debugger &debugger,
const lldb::OptionValuePropertiesSP &properties_sp,
518 #endif // LLDB_CORE_PLUGINMANAGER_H