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,
185 static ObjectFileCreateMemoryInstance
188 static ObjectFileGetModuleSpecifications
191 static ObjectFileCreateMemoryInstance
197 llvm::StringRef plugin_name);
201 llvm::StringRef name, llvm::StringRef description,
203 ObjectFileGetModuleSpecifications get_module_specifications,
204 ObjectContainerCreateMemoryInstance create_memory_callback =
nullptr);
211 static ObjectContainerCreateMemoryInstance
214 static ObjectFileGetModuleSpecifications
220 PlatformCreateInstance create_callback,
227 static PlatformCreateInstance
239 ProcessCreateInstance create_callback,
246 static ProcessCreateInstance
257 static bool RegisterPlugin(llvm::StringRef name, llvm::StringRef description,
266 static lldb::ScriptInterpreterSP
308 StructuredDataFilterLaunchInfo filter_callback =
nullptr);
316 static StructuredDataFilterLaunchInfo
318 bool &iteration_complete);
323 SymbolFileCreateInstance create_callback,
328 static SymbolFileCreateInstance
332 static bool RegisterPlugin(llvm::StringRef name, llvm::StringRef description,
333 SymbolVendorCreateInstance create_callback);
337 static SymbolVendorCreateInstance
342 llvm::StringRef name, llvm::StringRef description,
344 TraceCreateInstanceForLiveProcess create_callback_for_live_process,
345 llvm::StringRef schema,
354 static TraceCreateInstanceForLiveProcess
366 static llvm::StringRef
GetTraceSchema(llvm::StringRef plugin_name);
385 llvm::StringRef name, llvm::StringRef description,
387 ThreadTraceExportCommandCreator create_thread_trace_export_command);
398 static ThreadTraceExportCommandCreator
402 static bool RegisterPlugin(llvm::StringRef name, llvm::StringRef description,
403 UnwindAssemblyCreateInstance create_callback);
407 static UnwindAssemblyCreateInstance
411 static bool RegisterPlugin(llvm::StringRef name, llvm::StringRef description,
412 MemoryHistoryCreateInstance create_callback);
416 static MemoryHistoryCreateInstance
423 InstrumentationRuntimeGetType get_type_callback);
428 static InstrumentationRuntimeGetType
435 static bool RegisterPlugin(llvm::StringRef name, llvm::StringRef description,
450 static bool RegisterPlugin(llvm::StringRef name, llvm::StringRef description,
469 static lldb::OptionValuePropertiesSP
474 Debugger &debugger,
const lldb::OptionValuePropertiesSP &properties_sp,
477 static lldb::OptionValuePropertiesSP
481 Debugger &debugger,
const lldb::OptionValuePropertiesSP &properties_sp,
484 static lldb::OptionValuePropertiesSP
488 Debugger &debugger,
const lldb::OptionValuePropertiesSP &properties_sp,
492 Debugger &debugger,
const lldb::OptionValuePropertiesSP &properties_sp,
495 static lldb::OptionValuePropertiesSP
499 Debugger &debugger,
const lldb::OptionValuePropertiesSP &properties_sp,
502 static lldb::OptionValuePropertiesSP
506 Debugger &debugger,
const lldb::OptionValuePropertiesSP &properties_sp,
509 static lldb::OptionValuePropertiesSP
513 Debugger &debugger,
const lldb::OptionValuePropertiesSP &properties_sp,
516 static lldb::OptionValuePropertiesSP
521 Debugger &debugger,
const lldb::OptionValuePropertiesSP &properties_sp,
524 static lldb::OptionValuePropertiesSP
529 Debugger &debugger,
const lldb::OptionValuePropertiesSP &properties_sp,
535 #endif // LLDB_CORE_PLUGINMANAGER_H