1 //===-- PluginManager.h -----------------------------------------*- C++ -*-===// 2 // 3 // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 4 // See https://llvm.org/LICENSE.txt for license information. 5 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 6 // 7 //===----------------------------------------------------------------------===// 8 9 #ifndef LLDB_CORE_PLUGINMANAGER_H 10 #define LLDB_CORE_PLUGINMANAGER_H 11 12 #include "lldb/Core/Architecture.h" 13 #include "lldb/Interpreter/Interfaces/ScriptedInterfaceUsages.h" 14 #include "lldb/Symbol/TypeSystem.h" 15 #include "lldb/Utility/CompletionRequest.h" 16 #include "lldb/Utility/FileSpec.h" 17 #include "lldb/Utility/Status.h" 18 #include "lldb/lldb-enumerations.h" 19 #include "lldb/lldb-forward.h" 20 #include "lldb/lldb-private-interfaces.h" 21 #include "llvm/ADT/StringRef.h" 22 23 #include <cstddef> 24 #include <cstdint> 25 26 #define LLDB_PLUGIN_DEFINE_ADV(ClassName, PluginName) \ 27 namespace lldb_private { \ 28 void lldb_initialize_##PluginName() { ClassName::Initialize(); } \ 29 void lldb_terminate_##PluginName() { ClassName::Terminate(); } \ 30 } 31 32 #define LLDB_PLUGIN_DEFINE(PluginName) \ 33 LLDB_PLUGIN_DEFINE_ADV(PluginName, PluginName) 34 35 // FIXME: Generate me with CMake 36 #define LLDB_PLUGIN_DECLARE(PluginName) \ 37 namespace lldb_private { \ 38 extern void lldb_initialize_##PluginName(); \ 39 extern void lldb_terminate_##PluginName(); \ 40 } 41 42 #define LLDB_PLUGIN_INITIALIZE(PluginName) lldb_initialize_##PluginName() 43 #define LLDB_PLUGIN_TERMINATE(PluginName) lldb_terminate_##PluginName() 44 45 namespace lldb_private { 46 class CommandInterpreter; 47 class Debugger; 48 class StringList; 49 50 class PluginManager { 51 public: 52 static void Initialize(); 53 54 static void Terminate(); 55 56 // ABI 57 static bool RegisterPlugin(llvm::StringRef name, llvm::StringRef description, 58 ABICreateInstance create_callback); 59 60 static bool UnregisterPlugin(ABICreateInstance create_callback); 61 62 static ABICreateInstance GetABICreateCallbackAtIndex(uint32_t idx); 63 64 // Architecture 65 static void RegisterPlugin(llvm::StringRef name, llvm::StringRef description, 66 ArchitectureCreateInstance create_callback); 67 68 static void UnregisterPlugin(ArchitectureCreateInstance create_callback); 69 70 static std::unique_ptr<Architecture> 71 CreateArchitectureInstance(const ArchSpec &arch); 72 73 // Disassembler 74 static bool RegisterPlugin(llvm::StringRef name, llvm::StringRef description, 75 DisassemblerCreateInstance create_callback); 76 77 static bool UnregisterPlugin(DisassemblerCreateInstance create_callback); 78 79 static DisassemblerCreateInstance 80 GetDisassemblerCreateCallbackAtIndex(uint32_t idx); 81 82 static DisassemblerCreateInstance 83 GetDisassemblerCreateCallbackForPluginName(llvm::StringRef name); 84 85 // DynamicLoader 86 static bool 87 RegisterPlugin(llvm::StringRef name, llvm::StringRef description, 88 DynamicLoaderCreateInstance create_callback, 89 DebuggerInitializeCallback debugger_init_callback = nullptr); 90 91 static bool UnregisterPlugin(DynamicLoaderCreateInstance create_callback); 92 93 static DynamicLoaderCreateInstance 94 GetDynamicLoaderCreateCallbackAtIndex(uint32_t idx); 95 96 static DynamicLoaderCreateInstance 97 GetDynamicLoaderCreateCallbackForPluginName(llvm::StringRef name); 98 99 // JITLoader 100 static bool 101 RegisterPlugin(llvm::StringRef name, llvm::StringRef description, 102 JITLoaderCreateInstance create_callback, 103 DebuggerInitializeCallback debugger_init_callback = nullptr); 104 105 static bool UnregisterPlugin(JITLoaderCreateInstance create_callback); 106 107 static JITLoaderCreateInstance 108 GetJITLoaderCreateCallbackAtIndex(uint32_t idx); 109 110 // EmulateInstruction 111 static bool RegisterPlugin(llvm::StringRef name, llvm::StringRef description, 112 EmulateInstructionCreateInstance create_callback); 113 114 static bool 115 UnregisterPlugin(EmulateInstructionCreateInstance create_callback); 116 117 static EmulateInstructionCreateInstance 118 GetEmulateInstructionCreateCallbackAtIndex(uint32_t idx); 119 120 static EmulateInstructionCreateInstance 121 GetEmulateInstructionCreateCallbackForPluginName(llvm::StringRef name); 122 123 // OperatingSystem 124 static bool RegisterPlugin(llvm::StringRef name, llvm::StringRef description, 125 OperatingSystemCreateInstance create_callback, 126 DebuggerInitializeCallback debugger_init_callback); 127 128 static bool UnregisterPlugin(OperatingSystemCreateInstance create_callback); 129 130 static OperatingSystemCreateInstance 131 GetOperatingSystemCreateCallbackAtIndex(uint32_t idx); 132 133 static OperatingSystemCreateInstance 134 GetOperatingSystemCreateCallbackForPluginName(llvm::StringRef name); 135 136 // Language 137 static bool RegisterPlugin(llvm::StringRef name, llvm::StringRef description, 138 LanguageCreateInstance create_callback); 139 140 static bool UnregisterPlugin(LanguageCreateInstance create_callback); 141 142 static LanguageCreateInstance GetLanguageCreateCallbackAtIndex(uint32_t idx); 143 144 // LanguageRuntime 145 static bool RegisterPlugin( 146 llvm::StringRef name, llvm::StringRef description, 147 LanguageRuntimeCreateInstance create_callback, 148 LanguageRuntimeGetCommandObject command_callback = nullptr, 149 LanguageRuntimeGetExceptionPrecondition precondition_callback = nullptr); 150 151 static bool UnregisterPlugin(LanguageRuntimeCreateInstance create_callback); 152 153 static LanguageRuntimeCreateInstance 154 GetLanguageRuntimeCreateCallbackAtIndex(uint32_t idx); 155 156 static LanguageRuntimeGetCommandObject 157 GetLanguageRuntimeGetCommandObjectAtIndex(uint32_t idx); 158 159 static LanguageRuntimeGetExceptionPrecondition 160 GetLanguageRuntimeGetExceptionPreconditionAtIndex(uint32_t idx); 161 162 // SystemRuntime 163 static bool RegisterPlugin(llvm::StringRef name, llvm::StringRef description, 164 SystemRuntimeCreateInstance create_callback); 165 166 static bool UnregisterPlugin(SystemRuntimeCreateInstance create_callback); 167 168 static SystemRuntimeCreateInstance 169 GetSystemRuntimeCreateCallbackAtIndex(uint32_t idx); 170 171 // ObjectFile 172 static bool 173 RegisterPlugin(llvm::StringRef name, llvm::StringRef description, 174 ObjectFileCreateInstance create_callback, 175 ObjectFileCreateMemoryInstance create_memory_callback, 176 ObjectFileGetModuleSpecifications get_module_specifications, 177 ObjectFileSaveCore save_core = nullptr, 178 DebuggerInitializeCallback debugger_init_callback = nullptr); 179 180 static bool UnregisterPlugin(ObjectFileCreateInstance create_callback); 181 182 static bool IsRegisteredObjectFilePluginName(llvm::StringRef name); 183 184 static ObjectFileCreateInstance 185 GetObjectFileCreateCallbackAtIndex(uint32_t idx); 186 187 static ObjectFileCreateMemoryInstance 188 GetObjectFileCreateMemoryCallbackAtIndex(uint32_t idx); 189 190 static ObjectFileGetModuleSpecifications 191 GetObjectFileGetModuleSpecificationsCallbackAtIndex(uint32_t idx); 192 193 static ObjectFileCreateMemoryInstance 194 GetObjectFileCreateMemoryCallbackForPluginName(llvm::StringRef name); 195 196 static Status SaveCore(const lldb::ProcessSP &process_sp, 197 lldb_private::SaveCoreOptions &core_options); 198 199 // ObjectContainer 200 static bool RegisterPlugin( 201 llvm::StringRef name, llvm::StringRef description, 202 ObjectContainerCreateInstance create_callback, 203 ObjectFileGetModuleSpecifications get_module_specifications, 204 ObjectContainerCreateMemoryInstance create_memory_callback = nullptr); 205 206 static bool UnregisterPlugin(ObjectContainerCreateInstance create_callback); 207 208 static ObjectContainerCreateInstance 209 GetObjectContainerCreateCallbackAtIndex(uint32_t idx); 210 211 static ObjectContainerCreateMemoryInstance 212 GetObjectContainerCreateMemoryCallbackAtIndex(uint32_t idx); 213 214 static ObjectFileGetModuleSpecifications 215 GetObjectContainerGetModuleSpecificationsCallbackAtIndex(uint32_t idx); 216 217 // Platform 218 static bool 219 RegisterPlugin(llvm::StringRef name, llvm::StringRef description, 220 PlatformCreateInstance create_callback, 221 DebuggerInitializeCallback debugger_init_callback = nullptr); 222 223 static bool UnregisterPlugin(PlatformCreateInstance create_callback); 224 225 static PlatformCreateInstance GetPlatformCreateCallbackAtIndex(uint32_t idx); 226 227 static PlatformCreateInstance 228 GetPlatformCreateCallbackForPluginName(llvm::StringRef name); 229 230 static llvm::StringRef GetPlatformPluginNameAtIndex(uint32_t idx); 231 232 static llvm::StringRef GetPlatformPluginDescriptionAtIndex(uint32_t idx); 233 234 static void AutoCompletePlatformName(llvm::StringRef partial_name, 235 CompletionRequest &request); 236 // Process 237 static bool 238 RegisterPlugin(llvm::StringRef name, llvm::StringRef description, 239 ProcessCreateInstance create_callback, 240 DebuggerInitializeCallback debugger_init_callback = nullptr); 241 242 static bool UnregisterPlugin(ProcessCreateInstance create_callback); 243 244 static ProcessCreateInstance GetProcessCreateCallbackAtIndex(uint32_t idx); 245 246 static ProcessCreateInstance 247 GetProcessCreateCallbackForPluginName(llvm::StringRef name); 248 249 static llvm::StringRef GetProcessPluginNameAtIndex(uint32_t idx); 250 251 static llvm::StringRef GetProcessPluginDescriptionAtIndex(uint32_t idx); 252 253 static void AutoCompleteProcessName(llvm::StringRef partial_name, 254 CompletionRequest &request); 255 256 // Register Type Provider 257 static bool RegisterPlugin(llvm::StringRef name, llvm::StringRef description, 258 RegisterTypeBuilderCreateInstance create_callback); 259 260 static bool 261 UnregisterPlugin(RegisterTypeBuilderCreateInstance create_callback); 262 263 static lldb::RegisterTypeBuilderSP GetRegisterTypeBuilder(Target &target); 264 265 // ScriptInterpreter 266 static bool RegisterPlugin(llvm::StringRef name, llvm::StringRef description, 267 lldb::ScriptLanguage script_lang, 268 ScriptInterpreterCreateInstance create_callback); 269 270 static bool UnregisterPlugin(ScriptInterpreterCreateInstance create_callback); 271 272 static ScriptInterpreterCreateInstance 273 GetScriptInterpreterCreateCallbackAtIndex(uint32_t idx); 274 275 static lldb::ScriptInterpreterSP 276 GetScriptInterpreterForLanguage(lldb::ScriptLanguage script_lang, 277 Debugger &debugger); 278 279 // StructuredDataPlugin 280 281 /// Register a StructuredDataPlugin class along with optional 282 /// callbacks for debugger initialization and Process launch info 283 /// filtering and manipulation. 284 /// 285 /// \param[in] name 286 /// The name of the plugin. 287 /// 288 /// \param[in] description 289 /// A description string for the plugin. 290 /// 291 /// \param[in] create_callback 292 /// The callback that will be invoked to create an instance of 293 /// the callback. This may not be nullptr. 294 /// 295 /// \param[in] debugger_init_callback 296 /// An optional callback that will be made when a Debugger 297 /// instance is initialized. 298 /// 299 /// \param[in] filter_callback 300 /// An optional callback that will be invoked before LLDB 301 /// launches a process for debugging. The callback must 302 /// do the following: 303 /// 1. Only do something if the plugin's behavior is enabled. 304 /// 2. Only make changes for processes that are relevant to the 305 /// plugin. The callback gets a pointer to the Target, which 306 /// can be inspected as needed. The ProcessLaunchInfo is 307 /// provided in read-write mode, and may be modified by the 308 /// plugin if, for instance, additional environment variables 309 /// are needed to support the feature when enabled. 310 /// 311 /// \return 312 /// Returns true upon success; otherwise, false. 313 static bool 314 RegisterPlugin(llvm::StringRef name, llvm::StringRef description, 315 StructuredDataPluginCreateInstance create_callback, 316 DebuggerInitializeCallback debugger_init_callback = nullptr, 317 StructuredDataFilterLaunchInfo filter_callback = nullptr); 318 319 static bool 320 UnregisterPlugin(StructuredDataPluginCreateInstance create_callback); 321 322 static StructuredDataPluginCreateInstance 323 GetStructuredDataPluginCreateCallbackAtIndex(uint32_t idx); 324 325 static StructuredDataFilterLaunchInfo 326 GetStructuredDataFilterCallbackAtIndex(uint32_t idx, 327 bool &iteration_complete); 328 329 // SymbolFile 330 static bool 331 RegisterPlugin(llvm::StringRef name, llvm::StringRef description, 332 SymbolFileCreateInstance create_callback, 333 DebuggerInitializeCallback debugger_init_callback = nullptr); 334 335 static bool UnregisterPlugin(SymbolFileCreateInstance create_callback); 336 337 static SymbolFileCreateInstance 338 GetSymbolFileCreateCallbackAtIndex(uint32_t idx); 339 340 // SymbolVendor 341 static bool RegisterPlugin(llvm::StringRef name, llvm::StringRef description, 342 SymbolVendorCreateInstance create_callback); 343 344 static bool UnregisterPlugin(SymbolVendorCreateInstance create_callback); 345 346 static SymbolVendorCreateInstance 347 GetSymbolVendorCreateCallbackAtIndex(uint32_t idx); 348 349 // SymbolLocator 350 static bool RegisterPlugin( 351 llvm::StringRef name, llvm::StringRef description, 352 SymbolLocatorCreateInstance create_callback, 353 SymbolLocatorLocateExecutableObjectFile locate_executable_object_file = 354 nullptr, 355 SymbolLocatorLocateExecutableSymbolFile locate_executable_symbol_file = 356 nullptr, 357 SymbolLocatorDownloadObjectAndSymbolFile download_object_symbol_file = 358 nullptr, 359 SymbolLocatorFindSymbolFileInBundle find_symbol_file_in_bundle = nullptr, 360 DebuggerInitializeCallback debugger_init_callback = nullptr); 361 362 static bool UnregisterPlugin(SymbolLocatorCreateInstance create_callback); 363 364 static SymbolLocatorCreateInstance 365 GetSymbolLocatorCreateCallbackAtIndex(uint32_t idx); 366 367 static ModuleSpec LocateExecutableObjectFile(const ModuleSpec &module_spec); 368 369 static FileSpec 370 LocateExecutableSymbolFile(const ModuleSpec &module_spec, 371 const FileSpecList &default_search_paths); 372 373 static bool DownloadObjectAndSymbolFile(ModuleSpec &module_spec, 374 Status &error, 375 bool force_lookup = true, 376 bool copy_executable = true); 377 378 static FileSpec FindSymbolFileInBundle(const FileSpec &dsym_bundle_fspec, 379 const UUID *uuid, 380 const ArchSpec *arch); 381 382 // Trace 383 static bool RegisterPlugin( 384 llvm::StringRef name, llvm::StringRef description, 385 TraceCreateInstanceFromBundle create_callback_from_bundle, 386 TraceCreateInstanceForLiveProcess create_callback_for_live_process, 387 llvm::StringRef schema, 388 DebuggerInitializeCallback debugger_init_callback); 389 390 static bool 391 UnregisterPlugin(TraceCreateInstanceFromBundle create_callback); 392 393 static TraceCreateInstanceFromBundle 394 GetTraceCreateCallback(llvm::StringRef plugin_name); 395 396 static TraceCreateInstanceForLiveProcess 397 GetTraceCreateCallbackForLiveProcess(llvm::StringRef plugin_name); 398 399 /// Get the JSON schema for a trace bundle description file corresponding to 400 /// the given plugin. 401 /// 402 /// \param[in] plugin_name 403 /// The name of the plugin. 404 /// 405 /// \return 406 /// An empty \a StringRef if no plugin was found with that plugin name, 407 /// otherwise the actual schema is returned. 408 static llvm::StringRef GetTraceSchema(llvm::StringRef plugin_name); 409 410 /// Get the JSON schema for a trace bundle description file corresponding to 411 /// the plugin given by its index. 412 /// 413 /// \param[in] index 414 /// The index of the plugin to get the schema of. 415 /// 416 /// \return 417 /// An empty \a StringRef if the index is greater than or equal to the 418 /// number plugins, otherwise the actual schema is returned. 419 static llvm::StringRef GetTraceSchema(size_t index); 420 421 // TraceExporter 422 423 /// \param[in] create_thread_trace_export_command 424 /// This callback is used to create a CommandObject that will be listed 425 /// under "thread trace export". Can be \b null. 426 static bool RegisterPlugin( 427 llvm::StringRef name, llvm::StringRef description, 428 TraceExporterCreateInstance create_callback, 429 ThreadTraceExportCommandCreator create_thread_trace_export_command); 430 431 static TraceExporterCreateInstance 432 GetTraceExporterCreateCallback(llvm::StringRef plugin_name); 433 434 static bool UnregisterPlugin(TraceExporterCreateInstance create_callback); 435 436 static llvm::StringRef GetTraceExporterPluginNameAtIndex(uint32_t index); 437 438 /// Return the callback used to create the CommandObject that will be listed 439 /// under "thread trace export". Can be \b null. 440 static ThreadTraceExportCommandCreator 441 GetThreadTraceExportCommandCreatorAtIndex(uint32_t index); 442 443 // UnwindAssembly 444 static bool RegisterPlugin(llvm::StringRef name, llvm::StringRef description, 445 UnwindAssemblyCreateInstance create_callback); 446 447 static bool UnregisterPlugin(UnwindAssemblyCreateInstance create_callback); 448 449 static UnwindAssemblyCreateInstance 450 GetUnwindAssemblyCreateCallbackAtIndex(uint32_t idx); 451 452 // MemoryHistory 453 static bool RegisterPlugin(llvm::StringRef name, llvm::StringRef description, 454 MemoryHistoryCreateInstance create_callback); 455 456 static bool UnregisterPlugin(MemoryHistoryCreateInstance create_callback); 457 458 static MemoryHistoryCreateInstance 459 GetMemoryHistoryCreateCallbackAtIndex(uint32_t idx); 460 461 // InstrumentationRuntime 462 static bool 463 RegisterPlugin(llvm::StringRef name, llvm::StringRef description, 464 InstrumentationRuntimeCreateInstance create_callback, 465 InstrumentationRuntimeGetType get_type_callback); 466 467 static bool 468 UnregisterPlugin(InstrumentationRuntimeCreateInstance create_callback); 469 470 static InstrumentationRuntimeGetType 471 GetInstrumentationRuntimeGetTypeCallbackAtIndex(uint32_t idx); 472 473 static InstrumentationRuntimeCreateInstance 474 GetInstrumentationRuntimeCreateCallbackAtIndex(uint32_t idx); 475 476 // TypeSystem 477 static bool RegisterPlugin(llvm::StringRef name, llvm::StringRef description, 478 TypeSystemCreateInstance create_callback, 479 LanguageSet supported_languages_for_types, 480 LanguageSet supported_languages_for_expressions); 481 482 static bool UnregisterPlugin(TypeSystemCreateInstance create_callback); 483 484 static TypeSystemCreateInstance 485 GetTypeSystemCreateCallbackAtIndex(uint32_t idx); 486 487 static LanguageSet GetAllTypeSystemSupportedLanguagesForTypes(); 488 489 static LanguageSet GetAllTypeSystemSupportedLanguagesForExpressions(); 490 491 // Scripted Interface 492 static bool RegisterPlugin(llvm::StringRef name, llvm::StringRef description, 493 ScriptedInterfaceCreateInstance create_callback, 494 lldb::ScriptLanguage language, 495 ScriptedInterfaceUsages usages); 496 497 static bool UnregisterPlugin(ScriptedInterfaceCreateInstance create_callback); 498 499 static uint32_t GetNumScriptedInterfaces(); 500 501 static llvm::StringRef GetScriptedInterfaceNameAtIndex(uint32_t idx); 502 503 static llvm::StringRef GetScriptedInterfaceDescriptionAtIndex(uint32_t idx); 504 505 static lldb::ScriptLanguage GetScriptedInterfaceLanguageAtIndex(uint32_t idx); 506 507 static ScriptedInterfaceUsages 508 GetScriptedInterfaceUsagesAtIndex(uint32_t idx); 509 510 // REPL 511 static bool RegisterPlugin(llvm::StringRef name, llvm::StringRef description, 512 REPLCreateInstance create_callback, 513 LanguageSet supported_languages); 514 515 static bool UnregisterPlugin(REPLCreateInstance create_callback); 516 517 static REPLCreateInstance GetREPLCreateCallbackAtIndex(uint32_t idx); 518 519 static LanguageSet GetREPLSupportedLanguagesAtIndex(uint32_t idx); 520 521 static LanguageSet GetREPLAllTypeSystemSupportedLanguages(); 522 523 // Some plug-ins might register a DebuggerInitializeCallback callback when 524 // registering the plug-in. After a new Debugger instance is created, this 525 // DebuggerInitialize function will get called. This allows plug-ins to 526 // install Properties and do any other initialization that requires a 527 // debugger instance. 528 static void DebuggerInitialize(Debugger &debugger); 529 530 static lldb::OptionValuePropertiesSP 531 GetSettingForDynamicLoaderPlugin(Debugger &debugger, 532 llvm::StringRef setting_name); 533 534 static bool CreateSettingForDynamicLoaderPlugin( 535 Debugger &debugger, const lldb::OptionValuePropertiesSP &properties_sp, 536 llvm::StringRef description, bool is_global_property); 537 538 static lldb::OptionValuePropertiesSP 539 GetSettingForPlatformPlugin(Debugger &debugger, llvm::StringRef setting_name); 540 541 static bool CreateSettingForPlatformPlugin( 542 Debugger &debugger, const lldb::OptionValuePropertiesSP &properties_sp, 543 llvm::StringRef description, bool is_global_property); 544 545 static lldb::OptionValuePropertiesSP 546 GetSettingForProcessPlugin(Debugger &debugger, llvm::StringRef setting_name); 547 548 static bool CreateSettingForProcessPlugin( 549 Debugger &debugger, const lldb::OptionValuePropertiesSP &properties_sp, 550 llvm::StringRef description, bool is_global_property); 551 552 static lldb::OptionValuePropertiesSP 553 GetSettingForSymbolLocatorPlugin(Debugger &debugger, 554 llvm::StringRef setting_name); 555 556 static bool CreateSettingForSymbolLocatorPlugin( 557 Debugger &debugger, const lldb::OptionValuePropertiesSP &properties_sp, 558 llvm::StringRef description, bool is_global_property); 559 560 static bool CreateSettingForTracePlugin( 561 Debugger &debugger, const lldb::OptionValuePropertiesSP &properties_sp, 562 llvm::StringRef description, bool is_global_property); 563 564 static lldb::OptionValuePropertiesSP 565 GetSettingForObjectFilePlugin(Debugger &debugger, 566 llvm::StringRef setting_name); 567 568 static bool CreateSettingForObjectFilePlugin( 569 Debugger &debugger, const lldb::OptionValuePropertiesSP &properties_sp, 570 llvm::StringRef description, bool is_global_property); 571 572 static lldb::OptionValuePropertiesSP 573 GetSettingForSymbolFilePlugin(Debugger &debugger, 574 llvm::StringRef setting_name); 575 576 static bool CreateSettingForSymbolFilePlugin( 577 Debugger &debugger, const lldb::OptionValuePropertiesSP &properties_sp, 578 llvm::StringRef description, bool is_global_property); 579 580 static lldb::OptionValuePropertiesSP 581 GetSettingForJITLoaderPlugin(Debugger &debugger, 582 llvm::StringRef setting_name); 583 584 static bool CreateSettingForJITLoaderPlugin( 585 Debugger &debugger, const lldb::OptionValuePropertiesSP &properties_sp, 586 llvm::StringRef description, bool is_global_property); 587 588 static lldb::OptionValuePropertiesSP 589 GetSettingForOperatingSystemPlugin(Debugger &debugger, 590 llvm::StringRef setting_name); 591 592 static bool CreateSettingForOperatingSystemPlugin( 593 Debugger &debugger, const lldb::OptionValuePropertiesSP &properties_sp, 594 llvm::StringRef description, bool is_global_property); 595 596 static lldb::OptionValuePropertiesSP 597 GetSettingForStructuredDataPlugin(Debugger &debugger, 598 llvm::StringRef setting_name); 599 600 static bool CreateSettingForStructuredDataPlugin( 601 Debugger &debugger, const lldb::OptionValuePropertiesSP &properties_sp, 602 llvm::StringRef description, bool is_global_property); 603 }; 604 605 } // namespace lldb_private 606 607 #endif // LLDB_CORE_PLUGINMANAGER_H 608