LLDB mainline
PluginManager.h
Go to the documentation of this file.
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
17#include "lldb/Utility/Status.h"
19#include "lldb/lldb-forward.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
45namespace lldb_private {
46class CommandInterpreter;
47class Debugger;
48class StringList;
49
51public:
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
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>
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
81
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
95
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
109
110 // EmulateInstruction
111 static bool RegisterPlugin(llvm::StringRef name, llvm::StringRef description,
112 EmulateInstructionCreateInstance create_callback);
113
114 static bool
116
119
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
132
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
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
155
158
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
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
186
189
192
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
210
213
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
226
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
245
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
262
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
274
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,
316 DebuggerInitializeCallback debugger_init_callback = nullptr,
317 StructuredDataFilterLaunchInfo filter_callback = nullptr);
318
319 static bool
321
324
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
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
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
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
392
394 GetTraceCreateCallback(llvm::StringRef plugin_name);
395
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
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.
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
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
460
461 // InstrumentationRuntime
462 static bool
463 RegisterPlugin(llvm::StringRef name, llvm::StringRef description,
465 InstrumentationRuntimeGetType get_type_callback);
466
467 static bool
469
472
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
486
488
490
491 // Scripted Interface
492 static bool RegisterPlugin(llvm::StringRef name, llvm::StringRef description,
493 ScriptedInterfaceCreateInstance create_callback,
494 lldb::ScriptLanguage language,
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
506
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
518
520
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
532 llvm::StringRef setting_name);
533
535 Debugger &debugger, const lldb::OptionValuePropertiesSP &properties_sp,
536 llvm::StringRef description, bool is_global_property);
537
539 GetSettingForPlatformPlugin(Debugger &debugger, llvm::StringRef setting_name);
540
542 Debugger &debugger, const lldb::OptionValuePropertiesSP &properties_sp,
543 llvm::StringRef description, bool is_global_property);
544
546 GetSettingForProcessPlugin(Debugger &debugger, llvm::StringRef setting_name);
547
549 Debugger &debugger, const lldb::OptionValuePropertiesSP &properties_sp,
550 llvm::StringRef description, bool is_global_property);
551
554 llvm::StringRef setting_name);
555
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
566 llvm::StringRef setting_name);
567
569 Debugger &debugger, const lldb::OptionValuePropertiesSP &properties_sp,
570 llvm::StringRef description, bool is_global_property);
571
574 llvm::StringRef setting_name);
575
577 Debugger &debugger, const lldb::OptionValuePropertiesSP &properties_sp,
578 llvm::StringRef description, bool is_global_property);
579
582 llvm::StringRef setting_name);
583
585 Debugger &debugger, const lldb::OptionValuePropertiesSP &properties_sp,
586 llvm::StringRef description, bool is_global_property);
587
590 llvm::StringRef setting_name);
591
593 Debugger &debugger, const lldb::OptionValuePropertiesSP &properties_sp,
594 llvm::StringRef description, bool is_global_property);
595
598 llvm::StringRef setting_name);
599
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
static llvm::raw_ostream & error(Stream &strm)
An architecture specification class.
Definition: ArchSpec.h:31
"lldb/Utility/ArgCompletionRequest.h"
A class to manage flag bits.
Definition: Debugger.h:80
A file collection class.
Definition: FileSpecList.h:91
A file utility class.
Definition: FileSpec.h:56
static llvm::StringRef GetPlatformPluginDescriptionAtIndex(uint32_t idx)
static lldb::OptionValuePropertiesSP GetSettingForStructuredDataPlugin(Debugger &debugger, llvm::StringRef setting_name)
static llvm::StringRef GetTraceExporterPluginNameAtIndex(uint32_t index)
static bool CreateSettingForJITLoaderPlugin(Debugger &debugger, const lldb::OptionValuePropertiesSP &properties_sp, llvm::StringRef description, bool is_global_property)
static ProcessCreateInstance GetProcessCreateCallbackAtIndex(uint32_t idx)
static JITLoaderCreateInstance GetJITLoaderCreateCallbackAtIndex(uint32_t idx)
static ABICreateInstance GetABICreateCallbackAtIndex(uint32_t idx)
static LanguageSet GetAllTypeSystemSupportedLanguagesForExpressions()
static bool CreateSettingForOperatingSystemPlugin(Debugger &debugger, const lldb::OptionValuePropertiesSP &properties_sp, llvm::StringRef description, bool is_global_property)
static lldb::OptionValuePropertiesSP GetSettingForObjectFilePlugin(Debugger &debugger, llvm::StringRef setting_name)
static void AutoCompletePlatformName(llvm::StringRef partial_name, CompletionRequest &request)
static TraceExporterCreateInstance GetTraceExporterCreateCallback(llvm::StringRef plugin_name)
static bool CreateSettingForObjectFilePlugin(Debugger &debugger, const lldb::OptionValuePropertiesSP &properties_sp, llvm::StringRef description, bool is_global_property)
static lldb::ScriptInterpreterSP GetScriptInterpreterForLanguage(lldb::ScriptLanguage script_lang, Debugger &debugger)
static void AutoCompleteProcessName(llvm::StringRef partial_name, CompletionRequest &request)
static ThreadTraceExportCommandCreator GetThreadTraceExportCommandCreatorAtIndex(uint32_t index)
Return the callback used to create the CommandObject that will be listed under "thread trace export".
static LanguageSet GetREPLAllTypeSystemSupportedLanguages()
static PlatformCreateInstance GetPlatformCreateCallbackAtIndex(uint32_t idx)
static bool CreateSettingForTracePlugin(Debugger &debugger, const lldb::OptionValuePropertiesSP &properties_sp, llvm::StringRef description, bool is_global_property)
static UnwindAssemblyCreateInstance GetUnwindAssemblyCreateCallbackAtIndex(uint32_t idx)
static lldb::OptionValuePropertiesSP GetSettingForOperatingSystemPlugin(Debugger &debugger, llvm::StringRef setting_name)
static bool DownloadObjectAndSymbolFile(ModuleSpec &module_spec, Status &error, bool force_lookup=true, bool copy_executable=true)
static SymbolFileCreateInstance GetSymbolFileCreateCallbackAtIndex(uint32_t idx)
static bool RegisterPlugin(llvm::StringRef name, llvm::StringRef description, ABICreateInstance create_callback)
static lldb::ScriptLanguage GetScriptedInterfaceLanguageAtIndex(uint32_t idx)
static TypeSystemCreateInstance GetTypeSystemCreateCallbackAtIndex(uint32_t idx)
static InstrumentationRuntimeGetType GetInstrumentationRuntimeGetTypeCallbackAtIndex(uint32_t idx)
static llvm::StringRef GetTraceSchema(llvm::StringRef plugin_name)
Get the JSON schema for a trace bundle description file corresponding to the given plugin.
static SymbolLocatorCreateInstance GetSymbolLocatorCreateCallbackAtIndex(uint32_t idx)
static TraceCreateInstanceForLiveProcess GetTraceCreateCallbackForLiveProcess(llvm::StringRef plugin_name)
static LanguageRuntimeCreateInstance GetLanguageRuntimeCreateCallbackAtIndex(uint32_t idx)
static std::unique_ptr< Architecture > CreateArchitectureInstance(const ArchSpec &arch)
static SystemRuntimeCreateInstance GetSystemRuntimeCreateCallbackAtIndex(uint32_t idx)
static lldb::OptionValuePropertiesSP GetSettingForSymbolLocatorPlugin(Debugger &debugger, llvm::StringRef setting_name)
static uint32_t GetNumScriptedInterfaces()
static bool CreateSettingForProcessPlugin(Debugger &debugger, const lldb::OptionValuePropertiesSP &properties_sp, llvm::StringRef description, bool is_global_property)
static SymbolVendorCreateInstance GetSymbolVendorCreateCallbackAtIndex(uint32_t idx)
static LanguageRuntimeGetCommandObject GetLanguageRuntimeGetCommandObjectAtIndex(uint32_t idx)
static OperatingSystemCreateInstance GetOperatingSystemCreateCallbackAtIndex(uint32_t idx)
static lldb::OptionValuePropertiesSP GetSettingForPlatformPlugin(Debugger &debugger, llvm::StringRef setting_name)
static Status SaveCore(const lldb::ProcessSP &process_sp, lldb_private::SaveCoreOptions &core_options)
static LanguageRuntimeGetExceptionPrecondition GetLanguageRuntimeGetExceptionPreconditionAtIndex(uint32_t idx)
static ModuleSpec LocateExecutableObjectFile(const ModuleSpec &module_spec)
static REPLCreateInstance GetREPLCreateCallbackAtIndex(uint32_t idx)
static ObjectFileCreateMemoryInstance GetObjectFileCreateMemoryCallbackAtIndex(uint32_t idx)
static lldb::OptionValuePropertiesSP GetSettingForJITLoaderPlugin(Debugger &debugger, llvm::StringRef setting_name)
static DisassemblerCreateInstance GetDisassemblerCreateCallbackForPluginName(llvm::StringRef name)
static MemoryHistoryCreateInstance GetMemoryHistoryCreateCallbackAtIndex(uint32_t idx)
static bool CreateSettingForSymbolFilePlugin(Debugger &debugger, const lldb::OptionValuePropertiesSP &properties_sp, llvm::StringRef description, bool is_global_property)
static bool CreateSettingForPlatformPlugin(Debugger &debugger, const lldb::OptionValuePropertiesSP &properties_sp, llvm::StringRef description, bool is_global_property)
static OperatingSystemCreateInstance GetOperatingSystemCreateCallbackForPluginName(llvm::StringRef name)
static DisassemblerCreateInstance GetDisassemblerCreateCallbackAtIndex(uint32_t idx)
static ObjectContainerCreateInstance GetObjectContainerCreateCallbackAtIndex(uint32_t idx)
static ObjectFileCreateInstance GetObjectFileCreateCallbackAtIndex(uint32_t idx)
static EmulateInstructionCreateInstance GetEmulateInstructionCreateCallbackForPluginName(llvm::StringRef name)
static lldb::OptionValuePropertiesSP GetSettingForSymbolFilePlugin(Debugger &debugger, llvm::StringRef setting_name)
static bool CreateSettingForStructuredDataPlugin(Debugger &debugger, const lldb::OptionValuePropertiesSP &properties_sp, llvm::StringRef description, bool is_global_property)
static DynamicLoaderCreateInstance GetDynamicLoaderCreateCallbackAtIndex(uint32_t idx)
static ObjectFileGetModuleSpecifications GetObjectContainerGetModuleSpecificationsCallbackAtIndex(uint32_t idx)
static DynamicLoaderCreateInstance GetDynamicLoaderCreateCallbackForPluginName(llvm::StringRef name)
static PlatformCreateInstance GetPlatformCreateCallbackForPluginName(llvm::StringRef name)
static ScriptInterpreterCreateInstance GetScriptInterpreterCreateCallbackAtIndex(uint32_t idx)
static LanguageCreateInstance GetLanguageCreateCallbackAtIndex(uint32_t idx)
static lldb::OptionValuePropertiesSP GetSettingForProcessPlugin(Debugger &debugger, llvm::StringRef setting_name)
static ProcessCreateInstance GetProcessCreateCallbackForPluginName(llvm::StringRef name)
static llvm::StringRef GetScriptedInterfaceDescriptionAtIndex(uint32_t idx)
static llvm::StringRef GetProcessPluginDescriptionAtIndex(uint32_t idx)
static bool IsRegisteredObjectFilePluginName(llvm::StringRef name)
static lldb::OptionValuePropertiesSP GetSettingForDynamicLoaderPlugin(Debugger &debugger, llvm::StringRef setting_name)
static bool CreateSettingForDynamicLoaderPlugin(Debugger &debugger, const lldb::OptionValuePropertiesSP &properties_sp, llvm::StringRef description, bool is_global_property)
static StructuredDataPluginCreateInstance GetStructuredDataPluginCreateCallbackAtIndex(uint32_t idx)
static FileSpec LocateExecutableSymbolFile(const ModuleSpec &module_spec, const FileSpecList &default_search_paths)
static ObjectFileGetModuleSpecifications GetObjectFileGetModuleSpecificationsCallbackAtIndex(uint32_t idx)
static llvm::StringRef GetPlatformPluginNameAtIndex(uint32_t idx)
static TraceCreateInstanceFromBundle GetTraceCreateCallback(llvm::StringRef plugin_name)
static void DebuggerInitialize(Debugger &debugger)
static llvm::StringRef GetScriptedInterfaceNameAtIndex(uint32_t idx)
static llvm::StringRef GetProcessPluginNameAtIndex(uint32_t idx)
static LanguageSet GetAllTypeSystemSupportedLanguagesForTypes()
static bool UnregisterPlugin(ABICreateInstance create_callback)
static FileSpec FindSymbolFileInBundle(const FileSpec &dsym_bundle_fspec, const UUID *uuid, const ArchSpec *arch)
static ObjectContainerCreateMemoryInstance GetObjectContainerCreateMemoryCallbackAtIndex(uint32_t idx)
static StructuredDataFilterLaunchInfo GetStructuredDataFilterCallbackAtIndex(uint32_t idx, bool &iteration_complete)
static InstrumentationRuntimeCreateInstance GetInstrumentationRuntimeCreateCallbackAtIndex(uint32_t idx)
static LanguageSet GetREPLSupportedLanguagesAtIndex(uint32_t idx)
static lldb::RegisterTypeBuilderSP GetRegisterTypeBuilder(Target &target)
static ScriptedInterfaceUsages GetScriptedInterfaceUsagesAtIndex(uint32_t idx)
static ObjectFileCreateMemoryInstance GetObjectFileCreateMemoryCallbackForPluginName(llvm::StringRef name)
static bool CreateSettingForSymbolLocatorPlugin(Debugger &debugger, const lldb::OptionValuePropertiesSP &properties_sp, llvm::StringRef description, bool is_global_property)
static EmulateInstructionCreateInstance GetEmulateInstructionCreateCallbackAtIndex(uint32_t idx)
An error handling class.
Definition: Status.h:44
A class that represents a running process on the host machine.
SymbolVendor *(* SymbolVendorCreateInstance)(const lldb::ModuleSP &module_sp, lldb_private::Stream *feedback_strm)
bool(* ObjectFileSaveCore)(const lldb::ProcessSP &process_sp, lldb_private::SaveCoreOptions &options, Status &error)
llvm::Expected< lldb::TraceSP >(* TraceCreateInstanceForLiveProcess)(Process &process)
lldb::InstrumentationRuntimeType(* InstrumentationRuntimeGetType)()
std::optional< FileSpec >(* SymbolLocatorLocateExecutableSymbolFile)(const ModuleSpec &module_spec, const FileSpecList &default_search_paths)
EmulateInstruction *(* EmulateInstructionCreateInstance)(const ArchSpec &arch, InstructionType inst_type)
ObjectContainer *(* ObjectContainerCreateMemoryInstance)(const lldb::ModuleSP &module_sp, lldb::WritableDataBufferSP data_sp, const lldb::ProcessSP &process_sp, lldb::addr_t offset)
size_t(* ObjectFileGetModuleSpecifications)(const FileSpec &file, lldb::DataBufferSP &data_sp, lldb::offset_t data_offset, lldb::offset_t file_offset, lldb::offset_t length, ModuleSpecList &module_specs)
void(* DebuggerInitializeCallback)(Debugger &debugger)
std::unique_ptr< Architecture >(* ArchitectureCreateInstance)(const ArchSpec &arch)
lldb::PlatformSP(* PlatformCreateInstance)(bool force, const ArchSpec *arch)
SystemRuntime *(* SystemRuntimeCreateInstance)(Process *process)
lldb::ProcessSP(* ProcessCreateInstance)(lldb::TargetSP target_sp, lldb::ListenerSP listener_sp, const FileSpec *crash_file_path, bool can_connect)
UnwindAssembly *(* UnwindAssemblyCreateInstance)(const ArchSpec &arch)
lldb::BreakpointPreconditionSP(* LanguageRuntimeGetExceptionPrecondition)(lldb::LanguageType language, bool throw_bp)
lldb::MemoryHistorySP(* MemoryHistoryCreateInstance)(const lldb::ProcessSP &process_sp)
ObjectFile *(* ObjectFileCreateMemoryInstance)(const lldb::ModuleSP &module_sp, lldb::WritableDataBufferSP data_sp, const lldb::ProcessSP &process_sp, lldb::addr_t offset)
std::optional< ModuleSpec >(* SymbolLocatorLocateExecutableObjectFile)(const ModuleSpec &module_spec)
lldb::CommandObjectSP(* LanguageRuntimeGetCommandObject)(CommandInterpreter &interpreter)
DynamicLoader *(* DynamicLoaderCreateInstance)(Process *process, bool force)
lldb::JITLoaderSP(* JITLoaderCreateInstance)(Process *process, bool force)
OperatingSystem *(* OperatingSystemCreateInstance)(Process *process, bool force)
SymbolFile *(* SymbolFileCreateInstance)(lldb::ObjectFileSP objfile_sp)
std::optional< FileSpec >(* SymbolLocatorFindSymbolFileInBundle)(const FileSpec &dsym_bundle_fspec, const UUID *uuid, const ArchSpec *arch)
bool(* SymbolLocatorDownloadObjectAndSymbolFile)(ModuleSpec &module_spec, Status &error, bool force_lookup, bool copy_executable)
Language *(* LanguageCreateInstance)(lldb::LanguageType language)
Status(* StructuredDataFilterLaunchInfo)(ProcessLaunchInfo &launch_info, Target *target)
lldb::ABISP(* ABICreateInstance)(lldb::ProcessSP process_sp, const ArchSpec &arch)
lldb::DisassemblerSP(* DisassemblerCreateInstance)(const ArchSpec &arch, const char *flavor)
lldb::CommandObjectSP(* ThreadTraceExportCommandCreator)(CommandInterpreter &interpreter)
ScriptLanguage
Script interpreter types.
std::shared_ptr< lldb_private::OptionValueProperties > OptionValuePropertiesSP
Definition: lldb-forward.h:385
std::shared_ptr< lldb_private::ScriptInterpreter > ScriptInterpreterSP
Definition: lldb-forward.h:404
std::shared_ptr< lldb_private::RegisterTypeBuilder > RegisterTypeBuilderSP
Definition: lldb-forward.h:394
std::shared_ptr< lldb_private::Process > ProcessSP
Definition: lldb-forward.h:387
A SmallBitVector that represents a set of source languages (lldb::LanguageType).
Definition: Type.h:38