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