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
18#include "lldb/Utility/Status.h"
20#include "lldb/lldb-forward.h"
22#include "llvm/ADT/ArrayRef.h"
23#include "llvm/ADT/SmallVector.h"
24#include "llvm/ADT/StringRef.h"
25#include "llvm/Support/Error.h"
26#include "llvm/Support/JSON.h"
27
28#include <cstddef>
29#include <cstdint>
30#include <functional>
31#include <variant>
32#include <vector>
33
34// Match the PluginInitCallback and PluginTermCallback signature. The generated
35// initializer always succeeds.
36#define LLDB_PLUGIN_DEFINE_ADV(ClassName, PluginName) \
37 extern "C" { \
38 bool lldb_initialize_##PluginName() { \
39 ClassName::Initialize(); \
40 return true; \
41 } \
42 void lldb_terminate_##PluginName() { ClassName::Terminate(); } \
43 }
44
45#define LLDB_PLUGIN_DEFINE(PluginName) \
46 LLDB_PLUGIN_DEFINE_ADV(PluginName, PluginName)
47
48// FIXME: Generate me with CMake
49#define LLDB_PLUGIN_DECLARE(PluginName) \
50 extern "C" { \
51 extern bool lldb_initialize_##PluginName(); \
52 extern void lldb_terminate_##PluginName(); \
53 }
54
55#define LLDB_PLUGIN_INITIALIZE(PluginName) lldb_initialize_##PluginName()
56#define LLDB_PLUGIN_TERMINATE(PluginName) lldb_terminate_##PluginName()
57
58namespace lldb_private {
59class CommandInterpreter;
60class Debugger;
61class StringList;
62
64 llvm::StringRef name = "";
65 llvm::StringRef description = "";
66 bool enabled = false;
67};
68
69// Define some data structures to describe known plugin "namespaces".
70// The PluginManager is organized into a series of static functions
71// that operate on different types of plugins. For example SystemRuntime
72// and ObjectFile plugins.
73//
74// The namespace name is used a prefix when matching plugin names. For example,
75// if we have an "macosx" plugin in the "system-runtime" namespace then we will
76// match a plugin name pattern against the "system-runtime.macosx" name.
77//
78// The plugin namespace here is used so we can operate on all the plugins
79// of a given type so it is easy to enable or disable them as a group.
80using GetPluginInfo = std::function<llvm::SmallVector<RegisteredPluginInfo>()>;
81using SetPluginEnabledGlobalDomain = std::function<bool(llvm::StringRef, bool)>;
82using SetPluginEnabledAllDomains = std::function<llvm::Error(
83 llvm::StringRef, bool, Debugger &, lldb::PluginDomainKind)>;
85public:
86 static constexpr uint8_t kAllDomains = lldb::ePluginDomainKindGlobal |
89
90 /// Plugin that only supports enable/disable in the global domain
94 supported_domains(lldb::ePluginDomainKindGlobal),
95 set_enabled_fn(set_enabled) {}
96
97 /// Plugin that supports enable/disable in all domains.
102
103 std::optional<SetPluginEnabledGlobalDomain> GetSetEnabledGlobalFn() const {
105 return std::get<SetPluginEnabledGlobalDomain>(set_enabled_fn);
106 return std::nullopt;
107 }
108
109 std::optional<SetPluginEnabledAllDomains> GetSetEnabledAllDomainsFn() const {
111 return std::get<SetPluginEnabledAllDomains>(set_enabled_fn);
112 return std::nullopt;
113 }
114
116 assert(llvm::has_single_bit(static_cast<uint8_t>(domain)));
117 return supported_domains & domain;
118 }
119
121 assert(llvm::has_single_bit(static_cast<uint8_t>(domain)));
122 return supported_domains == domain;
123 }
124
125 llvm::StringRef name;
127
128private:
130 std::variant<SetPluginEnabledGlobalDomain, SetPluginEnabledAllDomains>
132};
133
138
144
151
157
162
167
173
175public:
176 static void Initialize();
177
178 static void Terminate();
179
180 // Support for enabling and disabling plugins.
181
182 // Return the plugins that can be enabled or disabled by the user.
183 static llvm::ArrayRef<PluginNamespace> GetPluginNamespaces();
184
185 // Generate a json object that describes the plugins that are available.
186 // This is a json representation of the plugin info returned by
187 // GetPluginNamespaces().
188 //
189 // {
190 // <plugin-namespace>: [
191 // {
192 // "enabled": <bool>,
193 // "name": <plugin-name>,
194 // },
195 // ...
196 // ],
197 // ...
198 // }
199 //
200 // If pattern is given it will be used to filter the plugins that are
201 // are returned. The pattern filters the plugin names using the
202 // PluginManager::MatchPluginName() function.
203 static llvm::json::Object GetJSON(llvm::StringRef pattern = "");
204
205 // Return true if the pattern matches the plugin name.
206 //
207 // The pattern matches the name if it is exactly equal to the namespace name
208 // or if it is equal to the qualified name, which is the namespace name
209 // followed by a dot and the plugin name (e.g. "system-runtime.foo").
210 //
211 // An empty pattern matches all plugins.
212 static bool MatchPluginName(llvm::StringRef pattern,
213 const PluginNamespace &plugin_ns,
215
216 // ABI
217 static bool RegisterPlugin(llvm::StringRef name, llvm::StringRef description,
218 ABICreateInstance create_callback);
219
220 static bool UnregisterPlugin(ABICreateInstance create_callback);
221
222 static llvm::SmallVector<ABICreateInstance> GetABICreateCallbacks();
223
224 // Architecture
225 static void RegisterPlugin(llvm::StringRef name, llvm::StringRef description,
226 ArchitectureCreateInstance create_callback);
227
228 static void UnregisterPlugin(ArchitectureCreateInstance create_callback);
229
230 static std::unique_ptr<Architecture>
232
233 // Disassembler
234 static bool RegisterPlugin(llvm::StringRef name, llvm::StringRef description,
235 DisassemblerCreateInstance create_callback);
236
237 static bool UnregisterPlugin(DisassemblerCreateInstance create_callback);
238
239 static llvm::SmallVector<DisassemblerCreateInstance>
241
243 GetDisassemblerCreateCallbackForPluginName(llvm::StringRef name);
244
245 // DynamicLoader
246 static bool
247 RegisterPlugin(llvm::StringRef name, llvm::StringRef description,
248 DynamicLoaderCreateInstance create_callback,
249 DebuggerInitializeCallback debugger_init_callback = nullptr);
250
251 static bool UnregisterPlugin(DynamicLoaderCreateInstance create_callback);
252
253 static llvm::SmallVector<DynamicLoaderCreateInstance>
255
258
259 // JITLoader
260 static bool
261 RegisterPlugin(llvm::StringRef name, llvm::StringRef description,
262 JITLoaderCreateInstance create_callback,
263 DebuggerInitializeCallback debugger_init_callback = nullptr);
264
265 static bool UnregisterPlugin(JITLoaderCreateInstance create_callback);
266
267 static llvm::SmallVector<JITLoaderCreateInstance>
269
270 // EmulateInstruction
271 static bool RegisterPlugin(llvm::StringRef name, llvm::StringRef description,
272 EmulateInstructionCreateInstance create_callback);
273
274 static bool
276
277 static llvm::SmallVector<EmulateInstructionCreateInstance>
279
282
283 // OperatingSystem
284 static bool RegisterPlugin(llvm::StringRef name, llvm::StringRef description,
285 OperatingSystemCreateInstance create_callback,
286 DebuggerInitializeCallback debugger_init_callback);
287
288 static bool UnregisterPlugin(OperatingSystemCreateInstance create_callback);
289
290 static llvm::SmallVector<OperatingSystemCreateInstance>
292
295
296 // Language
297 static bool
298 RegisterPlugin(llvm::StringRef name, llvm::StringRef description,
299 LanguageCreateInstance create_callback,
300 DebuggerInitializeCallback debugger_init_callback = nullptr);
301
302 static bool UnregisterPlugin(LanguageCreateInstance create_callback);
303
304 static llvm::SmallVector<LanguageCreateInstance> GetLanguageCreateCallbacks();
305
306 // LanguageRuntime
307 static bool RegisterPlugin(
308 llvm::StringRef name, llvm::StringRef description,
309 LanguageRuntimeCreateInstance create_callback,
310 LanguageRuntimeGetCommandObject command_callback = nullptr,
311 LanguageRuntimeGetExceptionPrecondition precondition_callback = nullptr);
312
313 static bool UnregisterPlugin(LanguageRuntimeCreateInstance create_callback);
314
315 static llvm::SmallVector<LanguageRuntimeCallbacks>
317
318 // SystemRuntime
319 static bool RegisterPlugin(llvm::StringRef name, llvm::StringRef description,
320 SystemRuntimeCreateInstance create_callback);
321
322 static bool UnregisterPlugin(SystemRuntimeCreateInstance create_callback);
323
324 static llvm::SmallVector<SystemRuntimeCreateInstance>
326
327 // ObjectFile
328 static bool
329 RegisterPlugin(llvm::StringRef name, llvm::StringRef description,
330 ObjectFileCreateInstance create_callback,
331 ObjectFileCreateMemoryInstance create_memory_callback,
332 ObjectFileGetModuleSpecifications get_module_specifications,
333 ObjectFileSaveCore save_core = nullptr,
334 DebuggerInitializeCallback debugger_init_callback = nullptr);
335
336 static bool UnregisterPlugin(ObjectFileCreateInstance create_callback);
337
338 static bool IsRegisteredObjectFilePluginName(llvm::StringRef name);
339
340 static llvm::SmallVector<ObjectFileCallbacks> GetObjectFileCallbacks();
341
344
345 static Status SaveCore(lldb_private::SaveCoreOptions &core_options);
346
347 static llvm::SmallVector<llvm::StringRef> GetSaveCorePluginNames();
348
349 // ObjectContainer
350 static bool RegisterPlugin(
351 llvm::StringRef name, llvm::StringRef description,
352 ObjectContainerCreateInstance create_callback,
353 ObjectFileGetModuleSpecifications get_module_specifications,
354 ObjectContainerCreateMemoryInstance create_memory_callback = nullptr);
355
356 static bool UnregisterPlugin(ObjectContainerCreateInstance create_callback);
357
358 static llvm::SmallVector<ObjectContainerCallbacks>
360
361 // Platform
362 static bool
363 RegisterPlugin(llvm::StringRef name, llvm::StringRef description,
364 PlatformCreateInstance create_callback,
365 DebuggerInitializeCallback debugger_init_callback = nullptr);
366
367 static bool UnregisterPlugin(PlatformCreateInstance create_callback);
368
369 static llvm::SmallVector<PlatformCreateInstance> GetPlatformCreateCallbacks();
370
372 GetPlatformCreateCallbackForPluginName(llvm::StringRef name);
373
374 static llvm::StringRef GetPlatformPluginNameAtIndex(uint32_t idx);
375
376 static llvm::StringRef GetPlatformPluginDescriptionAtIndex(uint32_t idx);
377
378 static void AutoCompletePlatformName(llvm::StringRef partial_name,
379 CompletionRequest &request);
380 // Process
381 static bool
382 RegisterPlugin(llvm::StringRef name, llvm::StringRef description,
383 ProcessCreateInstance create_callback,
384 DebuggerInitializeCallback debugger_init_callback = nullptr);
385
386 static bool UnregisterPlugin(ProcessCreateInstance create_callback);
387
388 static llvm::SmallVector<ProcessCreateInstance> GetProcessCreateCallbacks();
389
391 GetProcessCreateCallbackForPluginName(llvm::StringRef name);
392
393 static llvm::StringRef GetProcessPluginNameAtIndex(uint32_t idx);
394
395 static llvm::StringRef GetProcessPluginDescriptionAtIndex(uint32_t idx);
396
397 static void AutoCompleteProcessName(llvm::StringRef partial_name,
398 CompletionRequest &request);
399
400 // Protocol
401 static bool RegisterPlugin(llvm::StringRef name, llvm::StringRef description,
402 ProtocolServerCreateInstance create_callback);
403
404 static bool UnregisterPlugin(ProtocolServerCreateInstance create_callback);
405
406 static llvm::StringRef GetProtocolServerPluginNameAtIndex(uint32_t idx);
407
409 GetProtocolCreateCallbackForPluginName(llvm::StringRef name);
410
411 // Register Type Provider
412 static bool RegisterPlugin(llvm::StringRef name, llvm::StringRef description,
413 RegisterTypeBuilderCreateInstance create_callback);
414
415 static bool
417
419
420 // ScriptInterpreter
421 static bool
422 RegisterPlugin(llvm::StringRef name, llvm::StringRef description,
423 lldb::ScriptLanguage script_lang,
424 ScriptInterpreterCreateInstance create_callback,
425 ScriptInterpreterGetPath get_path_callback = nullptr);
426
427 static bool UnregisterPlugin(ScriptInterpreterCreateInstance create_callback);
428
429 static llvm::SmallVector<ScriptInterpreterCreateInstance>
431
434 Debugger &debugger);
435
436 static FileSpec
438
439 // SyntheticFrameProvider
440 static bool
441 RegisterPlugin(llvm::StringRef name, llvm::StringRef description,
442 SyntheticFrameProviderCreateInstance create_native_callback,
443 ScriptedFrameProviderCreateInstance create_scripted_callback);
444
445 static bool
447
448 static bool
450
453
454 static llvm::SmallVector<ScriptedFrameProviderCreateInstance>
456
457 // StructuredDataPlugin
458
459 /// Register a StructuredDataPlugin class along with optional
460 /// callbacks for debugger initialization and Process launch info
461 /// filtering and manipulation.
462 ///
463 /// \param[in] name
464 /// The name of the plugin.
465 ///
466 /// \param[in] description
467 /// A description string for the plugin.
468 ///
469 /// \param[in] create_callback
470 /// The callback that will be invoked to create an instance of
471 /// the callback. This may not be nullptr.
472 ///
473 /// \param[in] debugger_init_callback
474 /// An optional callback that will be made when a Debugger
475 /// instance is initialized.
476 ///
477 /// \param[in] filter_callback
478 /// An optional callback that will be invoked before LLDB
479 /// launches a process for debugging. The callback must
480 /// do the following:
481 /// 1. Only do something if the plugin's behavior is enabled.
482 /// 2. Only make changes for processes that are relevant to the
483 /// plugin. The callback gets a pointer to the Target, which
484 /// can be inspected as needed. The ProcessLaunchInfo is
485 /// provided in read-write mode, and may be modified by the
486 /// plugin if, for instance, additional environment variables
487 /// are needed to support the feature when enabled.
488 ///
489 /// \return
490 /// Returns true upon success; otherwise, false.
491 static bool
492 RegisterPlugin(llvm::StringRef name, llvm::StringRef description,
494 DebuggerInitializeCallback debugger_init_callback = nullptr,
495 StructuredDataFilterLaunchInfo filter_callback = nullptr);
496
497 static bool
499
500 static llvm::SmallVector<StructuredDataPluginCallbacks>
502
503 // SymbolFile
504 static bool
505 RegisterPlugin(llvm::StringRef name, llvm::StringRef description,
506 SymbolFileCreateInstance create_callback,
507 DebuggerInitializeCallback debugger_init_callback = nullptr);
508
509 static bool UnregisterPlugin(SymbolFileCreateInstance create_callback);
510
511 static llvm::SmallVector<SymbolFileCreateInstance>
513
514 // SymbolVendor
515 static bool RegisterPlugin(llvm::StringRef name, llvm::StringRef description,
516 SymbolVendorCreateInstance create_callback);
517
518 static bool UnregisterPlugin(SymbolVendorCreateInstance create_callback);
519
520 static llvm::SmallVector<SymbolVendorCreateInstance>
522
523 // SymbolLocator
524 static bool RegisterPlugin(
525 llvm::StringRef name, llvm::StringRef description,
526 SymbolLocatorCreateInstance create_callback,
527 SymbolLocatorLocateExecutableObjectFile locate_executable_object_file =
528 nullptr,
529 SymbolLocatorLocateExecutableSymbolFile locate_executable_symbol_file =
530 nullptr,
531 SymbolLocatorDownloadObjectAndSymbolFile download_object_symbol_file =
532 nullptr,
533 SymbolLocatorFindSymbolFileInBundle find_symbol_file_in_bundle = nullptr,
534 DebuggerInitializeCallback debugger_init_callback = nullptr);
535
536 static bool UnregisterPlugin(SymbolLocatorCreateInstance create_callback);
537
538 static llvm::SmallVector<SymbolLocatorCreateInstance>
540
541 static ModuleSpec LocateExecutableObjectFile(const ModuleSpec &module_spec,
542 StatisticsMap &map);
543
544 static FileSpec
545 LocateExecutableSymbolFile(const ModuleSpec &module_spec,
546 const FileSpecList &default_search_paths,
547 StatisticsMap &map);
548
549 static bool DownloadObjectAndSymbolFile(ModuleSpec &module_spec,
550 Status &error,
551 bool force_lookup = true,
552 bool copy_executable = true);
553
554 static FileSpec FindSymbolFileInBundle(const FileSpec &dsym_bundle_fspec,
555 const UUID *uuid,
556 const ArchSpec *arch);
557
558 // Trace
559 static bool RegisterPlugin(
560 llvm::StringRef name, llvm::StringRef description,
561 TraceCreateInstanceFromBundle create_callback_from_bundle,
562 TraceCreateInstanceForLiveProcess create_callback_for_live_process,
563 llvm::StringRef schema,
564 DebuggerInitializeCallback debugger_init_callback);
565
566 static bool UnregisterPlugin(TraceCreateInstanceFromBundle create_callback);
567
569 GetTraceCreateCallback(llvm::StringRef plugin_name);
570
572 GetTraceCreateCallbackForLiveProcess(llvm::StringRef plugin_name);
573
574 /// Get the JSON schema for a trace bundle description file corresponding to
575 /// the given plugin.
576 ///
577 /// \param[in] plugin_name
578 /// The name of the plugin.
579 ///
580 /// \return
581 /// An empty \a StringRef if no plugin was found with that plugin name,
582 /// otherwise the actual schema is returned.
583 static llvm::StringRef GetTraceSchema(llvm::StringRef plugin_name);
584
585 /// Get the JSON schema for a trace bundle description file corresponding to
586 /// the plugin given by its index.
587 ///
588 /// \param[in] index
589 /// The index of the plugin to get the schema of.
590 ///
591 /// \return
592 /// An empty \a StringRef if the index is greater than or equal to the
593 /// number plugins, otherwise the actual schema is returned.
594 static llvm::StringRef GetTraceSchema(size_t index);
595
596 // TraceExporter
597
598 /// \param[in] create_thread_trace_export_command
599 /// This callback is used to create a CommandObject that will be listed
600 /// under "thread trace export". Can be \b null.
601 static bool RegisterPlugin(
602 llvm::StringRef name, llvm::StringRef description,
603 TraceExporterCreateInstance create_callback,
604 ThreadTraceExportCommandCreator create_thread_trace_export_command);
605
607 GetTraceExporterCreateCallback(llvm::StringRef plugin_name);
608
609 static bool UnregisterPlugin(TraceExporterCreateInstance create_callback);
610
611 static llvm::SmallVector<TraceExporterCallbacks> GetTraceExporterCallbacks();
612
613 // UnwindAssembly
614 static bool RegisterPlugin(llvm::StringRef name, llvm::StringRef description,
615 UnwindAssemblyCreateInstance create_callback);
616
617 static bool UnregisterPlugin(UnwindAssemblyCreateInstance create_callback);
618
619 static llvm::SmallVector<UnwindAssemblyCreateInstance>
621
622 // MemoryHistory
623 static bool RegisterPlugin(llvm::StringRef name, llvm::StringRef description,
624 MemoryHistoryCreateInstance create_callback);
625
626 static bool UnregisterPlugin(MemoryHistoryCreateInstance create_callback);
627
628 static llvm::SmallVector<MemoryHistoryCreateInstance>
630
631 // InstrumentationRuntime
632 static bool
633 RegisterPlugin(llvm::StringRef name, llvm::StringRef description,
635 InstrumentationRuntimeGetType get_type_callback);
636
637 static bool
639
640 static llvm::SmallVector<InstrumentationRuntimeCallbacks>
641 GetInstrumentationRuntimeCallbacks(bool enabled_only = true);
642
643 // TypeSystem
644 static bool RegisterPlugin(llvm::StringRef name, llvm::StringRef description,
645 TypeSystemCreateInstance create_callback,
646 LanguageSet supported_languages_for_types,
647 LanguageSet supported_languages_for_expressions);
648
649 static bool UnregisterPlugin(TypeSystemCreateInstance create_callback);
650
651 static llvm::SmallVector<TypeSystemCreateInstance>
653
655
657
658 // Scripted Interface
659 static bool RegisterPlugin(llvm::StringRef name, llvm::StringRef description,
660 ScriptedInterfaceCreateInstance create_callback,
661 lldb::ScriptLanguage language,
663
664 static bool UnregisterPlugin(ScriptedInterfaceCreateInstance create_callback);
665
666 static uint32_t GetNumScriptedInterfaces();
667
668 static llvm::StringRef GetScriptedInterfaceNameAtIndex(uint32_t idx);
669
670 static llvm::StringRef GetScriptedInterfaceDescriptionAtIndex(uint32_t idx);
671
673
676
677 // REPL
678 static bool RegisterPlugin(llvm::StringRef name, llvm::StringRef description,
679 REPLCreateInstance create_callback,
680 LanguageSet supported_languages);
681
682 static bool UnregisterPlugin(REPLCreateInstance create_callback);
683
684 static llvm::SmallVector<REPLCallbacks> GetREPLCallbacks();
685
687
688 // Higlhighter
689 static bool RegisterPlugin(llvm::StringRef name, llvm::StringRef description,
690 HighlighterCreateInstance create_callback);
691
692 static bool UnregisterPlugin(HighlighterCreateInstance create_callback);
693
694 static llvm::SmallVector<HighlighterCreateInstance>
696
697 // Some plug-ins might register a DebuggerInitializeCallback callback when
698 // registering the plug-in. After a new Debugger instance is created, this
699 // DebuggerInitialize function will get called. This allows plug-ins to
700 // install Properties and do any other initialization that requires a
701 // debugger instance.
702 static void DebuggerInitialize(Debugger &debugger);
703
706 llvm::StringRef setting_name);
707
709 Debugger &debugger, const lldb::OptionValuePropertiesSP &properties_sp,
710 llvm::StringRef description, bool is_global_property);
711
713 GetSettingForPlatformPlugin(Debugger &debugger, llvm::StringRef setting_name);
714
716 Debugger &debugger, const lldb::OptionValuePropertiesSP &properties_sp,
717 llvm::StringRef description, bool is_global_property);
718
720 GetSettingForProcessPlugin(Debugger &debugger, llvm::StringRef setting_name);
721
723 Debugger &debugger, const lldb::OptionValuePropertiesSP &properties_sp,
724 llvm::StringRef description, bool is_global_property);
725
728 llvm::StringRef setting_name);
729
731 Debugger &debugger, const lldb::OptionValuePropertiesSP &properties_sp,
732 llvm::StringRef description, bool is_global_property);
733
734 static bool CreateSettingForTracePlugin(
735 Debugger &debugger, const lldb::OptionValuePropertiesSP &properties_sp,
736 llvm::StringRef description, bool is_global_property);
737
740 llvm::StringRef setting_name);
741
743 Debugger &debugger, const lldb::OptionValuePropertiesSP &properties_sp,
744 llvm::StringRef description, bool is_global_property);
745
748 llvm::StringRef setting_name);
749
751 Debugger &debugger, const lldb::OptionValuePropertiesSP &properties_sp,
752 llvm::StringRef description, bool is_global_property);
753
756 llvm::StringRef setting_name);
757
759 Debugger &debugger, const lldb::OptionValuePropertiesSP &properties_sp,
760 llvm::StringRef description, bool is_global_property);
761
764 llvm::StringRef setting_name);
765
767 Debugger &debugger, const lldb::OptionValuePropertiesSP &properties_sp,
768 llvm::StringRef description, bool is_global_property);
769
772 llvm::StringRef setting_name);
773
775 Debugger &debugger, const lldb::OptionValuePropertiesSP &properties_sp,
776 llvm::StringRef description, bool is_global_property);
777
780 llvm::StringRef setting_name);
781
783 Debugger &debugger, const lldb::OptionValuePropertiesSP &properties_sp,
784 llvm::StringRef description, bool is_global_property);
785
786 //
787 // Plugin Info+Enable Declarations
788 //
789 static llvm::SmallVector<RegisteredPluginInfo> GetABIPluginInfo();
790 static bool SetABIPluginEnabled(llvm::StringRef name, bool enable);
791
792 static llvm::SmallVector<RegisteredPluginInfo> GetArchitecturePluginInfo();
793 static bool SetArchitecturePluginEnabled(llvm::StringRef name, bool enable);
794
795 static llvm::SmallVector<RegisteredPluginInfo> GetDisassemblerPluginInfo();
796 static bool SetDisassemblerPluginEnabled(llvm::StringRef name, bool enable);
797
798 static llvm::SmallVector<RegisteredPluginInfo> GetDynamicLoaderPluginInfo();
799 static bool SetDynamicLoaderPluginEnabled(llvm::StringRef name, bool enable);
800
801 static llvm::SmallVector<RegisteredPluginInfo>
803 static bool SetEmulateInstructionPluginEnabled(llvm::StringRef name,
804 bool enable);
805
806 static llvm::SmallVector<RegisteredPluginInfo>
808 static llvm::StringRef PluginDomainKindToStr(lldb::PluginDomainKind kind);
809 static llvm::Error
810 SetInstrumentationRuntimePluginEnabled(llvm::StringRef name, bool enable,
811 Debugger &requesting_debugger,
813
814 static llvm::SmallVector<RegisteredPluginInfo> GetJITLoaderPluginInfo();
815 static bool SetJITLoaderPluginEnabled(llvm::StringRef name, bool enable);
816
817 static llvm::SmallVector<RegisteredPluginInfo> GetLanguagePluginInfo();
818 static bool SetLanguagePluginEnabled(llvm::StringRef name, bool enable);
819
820 static llvm::SmallVector<RegisteredPluginInfo> GetLanguageRuntimePluginInfo();
821 static bool SetLanguageRuntimePluginEnabled(llvm::StringRef name,
822 bool enable);
823
824 static llvm::SmallVector<RegisteredPluginInfo> GetMemoryHistoryPluginInfo();
825 static bool SetMemoryHistoryPluginEnabled(llvm::StringRef name, bool enable);
826
827 static llvm::SmallVector<RegisteredPluginInfo> GetObjectContainerPluginInfo();
828 static bool SetObjectContainerPluginEnabled(llvm::StringRef name,
829 bool enable);
830
831 static llvm::SmallVector<RegisteredPluginInfo> GetObjectFilePluginInfo();
832 static bool SetObjectFilePluginEnabled(llvm::StringRef name, bool enable);
833
834 static llvm::SmallVector<RegisteredPluginInfo> GetOperatingSystemPluginInfo();
835 static bool SetOperatingSystemPluginEnabled(llvm::StringRef name,
836 bool enable);
837
838 static llvm::SmallVector<RegisteredPluginInfo> GetPlatformPluginInfo();
839 static bool SetPlatformPluginEnabled(llvm::StringRef name, bool enable);
840
841 static llvm::SmallVector<RegisteredPluginInfo> GetProcessPluginInfo();
842 static bool SetProcessPluginEnabled(llvm::StringRef name, bool enable);
843
844 static llvm::SmallVector<RegisteredPluginInfo> GetREPLPluginInfo();
845 static bool SetREPLPluginEnabled(llvm::StringRef name, bool enable);
846
847 static llvm::SmallVector<RegisteredPluginInfo>
849 static bool SetRegisterTypeBuilderPluginEnabled(llvm::StringRef name,
850 bool enable);
851
852 static llvm::SmallVector<RegisteredPluginInfo>
854 static bool SetScriptInterpreterPluginEnabled(llvm::StringRef name,
855 bool enable);
856
857 static llvm::SmallVector<RegisteredPluginInfo>
859 static bool SetScriptedInterfacePluginEnabled(llvm::StringRef name,
860 bool enable);
861
862 static llvm::SmallVector<RegisteredPluginInfo> GetStructuredDataPluginInfo();
863 static bool SetStructuredDataPluginEnabled(llvm::StringRef name, bool enable);
864
865 static llvm::SmallVector<RegisteredPluginInfo> GetSymbolFilePluginInfo();
866 static bool SetSymbolFilePluginEnabled(llvm::StringRef name, bool enable);
867
868 static llvm::SmallVector<RegisteredPluginInfo> GetSymbolLocatorPluginInfo();
869 static bool SetSymbolLocatorPluginEnabled(llvm::StringRef name, bool enable);
870
871 static llvm::SmallVector<RegisteredPluginInfo> GetSymbolVendorPluginInfo();
872 static bool SetSymbolVendorPluginEnabled(llvm::StringRef name, bool enable);
873
874 static llvm::SmallVector<RegisteredPluginInfo> GetSystemRuntimePluginInfo();
875 static bool SetSystemRuntimePluginEnabled(llvm::StringRef name, bool enable);
876
877 static llvm::SmallVector<RegisteredPluginInfo> GetTracePluginInfo();
878 static bool SetTracePluginEnabled(llvm::StringRef name, bool enable);
879
880 static llvm::SmallVector<RegisteredPluginInfo> GetTraceExporterPluginInfo();
881 static bool SetTraceExporterPluginEnabled(llvm::StringRef name, bool enable);
882
883 static llvm::SmallVector<RegisteredPluginInfo> GetTypeSystemPluginInfo();
884 static bool SetTypeSystemPluginEnabled(llvm::StringRef name, bool enable);
885
886 static llvm::SmallVector<RegisteredPluginInfo> GetUnwindAssemblyPluginInfo();
887 static bool SetUnwindAssemblyPluginEnabled(llvm::StringRef name, bool enable);
888
889 static void AutoCompletePluginName(llvm::StringRef partial_name,
890 CompletionRequest &request);
891};
892
893} // namespace lldb_private
894
895#endif // LLDB_CORE_PLUGINMANAGER_H
static llvm::raw_ostream & error(Stream &strm)
An architecture specification class.
Definition ArchSpec.h:32
"lldb/Utility/ArgCompletionRequest.h"
A class to manage flag bits.
Definition Debugger.h:100
A file collection class.
A file utility class.
Definition FileSpec.h:57
static bool SetArchitecturePluginEnabled(llvm::StringRef name, bool enable)
static llvm::StringRef GetPlatformPluginDescriptionAtIndex(uint32_t idx)
static bool SetPlatformPluginEnabled(llvm::StringRef name, bool enable)
static bool SetScriptInterpreterPluginEnabled(llvm::StringRef name, bool enable)
static bool MatchPluginName(llvm::StringRef pattern, const PluginNamespace &plugin_ns, const RegisteredPluginInfo &plugin)
static lldb::OptionValuePropertiesSP GetSettingForStructuredDataPlugin(Debugger &debugger, llvm::StringRef setting_name)
static bool SetMemoryHistoryPluginEnabled(llvm::StringRef name, bool enable)
static llvm::SmallVector< RegisteredPluginInfo > GetSystemRuntimePluginInfo()
static llvm::SmallVector< RegisteredPluginInfo > GetTypeSystemPluginInfo()
static bool CreateSettingForJITLoaderPlugin(Debugger &debugger, const lldb::OptionValuePropertiesSP &properties_sp, llvm::StringRef description, bool is_global_property)
static bool SetRegisterTypeBuilderPluginEnabled(llvm::StringRef name, bool enable)
static llvm::StringRef PluginDomainKindToStr(lldb::PluginDomainKind kind)
static bool SetTraceExporterPluginEnabled(llvm::StringRef name, bool enable)
static llvm::SmallVector< RegisteredPluginInfo > GetArchitecturePluginInfo()
static LanguageSet GetAllTypeSystemSupportedLanguagesForExpressions()
static bool CreateSettingForOperatingSystemPlugin(Debugger &debugger, const lldb::OptionValuePropertiesSP &properties_sp, llvm::StringRef description, bool is_global_property)
static llvm::SmallVector< UnwindAssemblyCreateInstance > GetUnwindAssemblyCreateCallbacks()
static lldb::OptionValuePropertiesSP GetSettingForObjectFilePlugin(Debugger &debugger, llvm::StringRef setting_name)
static llvm::SmallVector< RegisteredPluginInfo > GetEmulateInstructionPluginInfo()
static void AutoCompletePlatformName(llvm::StringRef partial_name, CompletionRequest &request)
static TraceExporterCreateInstance GetTraceExporterCreateCallback(llvm::StringRef plugin_name)
static bool SetDynamicLoaderPluginEnabled(llvm::StringRef name, bool enable)
static llvm::json::Object GetJSON(llvm::StringRef pattern="")
static bool CreateSettingForObjectFilePlugin(Debugger &debugger, const lldb::OptionValuePropertiesSP &properties_sp, llvm::StringRef description, bool is_global_property)
static bool SetScriptedInterfacePluginEnabled(llvm::StringRef name, bool enable)
static bool SetOperatingSystemPluginEnabled(llvm::StringRef name, bool enable)
static lldb::ScriptInterpreterSP GetScriptInterpreterForLanguage(lldb::ScriptLanguage script_lang, Debugger &debugger)
static llvm::SmallVector< ABICreateInstance > GetABICreateCallbacks()
static llvm::SmallVector< InstrumentationRuntimeCallbacks > GetInstrumentationRuntimeCallbacks(bool enabled_only=true)
static void AutoCompleteProcessName(llvm::StringRef partial_name, CompletionRequest &request)
static llvm::SmallVector< RegisteredPluginInfo > GetScriptInterpreterPluginInfo()
static llvm::SmallVector< RegisteredPluginInfo > GetABIPluginInfo()
static llvm::SmallVector< RegisteredPluginInfo > GetLanguagePluginInfo()
static LanguageSet GetREPLAllTypeSystemSupportedLanguages()
static llvm::SmallVector< OperatingSystemCreateInstance > GetOperatingSystemCreateCallbacks()
static bool CreateSettingForTracePlugin(Debugger &debugger, const lldb::OptionValuePropertiesSP &properties_sp, llvm::StringRef description, bool is_global_property)
static llvm::SmallVector< RegisteredPluginInfo > GetDynamicLoaderPluginInfo()
static lldb::OptionValuePropertiesSP GetSettingForOperatingSystemPlugin(Debugger &debugger, llvm::StringRef setting_name)
static llvm::Error SetInstrumentationRuntimePluginEnabled(llvm::StringRef name, bool enable, Debugger &requesting_debugger, lldb::PluginDomainKind domain)
static llvm::SmallVector< ProcessCreateInstance > GetProcessCreateCallbacks()
static llvm::SmallVector< RegisteredPluginInfo > GetObjectContainerPluginInfo()
static bool DownloadObjectAndSymbolFile(ModuleSpec &module_spec, Status &error, bool force_lookup=true, bool copy_executable=true)
static llvm::SmallVector< RegisteredPluginInfo > GetDisassemblerPluginInfo()
static llvm::SmallVector< LanguageRuntimeCallbacks > GetLanguageRuntimeCallbacks()
static llvm::SmallVector< SymbolFileCreateInstance > GetSymbolFileCreateCallbacks()
static bool SetLanguageRuntimePluginEnabled(llvm::StringRef name, bool enable)
static llvm::SmallVector< RegisteredPluginInfo > GetObjectFilePluginInfo()
static bool RegisterPlugin(llvm::StringRef name, llvm::StringRef description, ABICreateInstance create_callback)
static lldb::ScriptLanguage GetScriptedInterfaceLanguageAtIndex(uint32_t idx)
static llvm::SmallVector< RegisteredPluginInfo > GetSymbolLocatorPluginInfo()
static llvm::StringRef GetTraceSchema(llvm::StringRef plugin_name)
Get the JSON schema for a trace bundle description file corresponding to the given plugin.
static llvm::SmallVector< SymbolVendorCreateInstance > GetSymbolVendorCreateCallbacks()
static bool SetUnwindAssemblyPluginEnabled(llvm::StringRef name, bool enable)
static lldb::OptionValuePropertiesSP GetSettingForCPlusPlusLanguagePlugin(Debugger &debugger, llvm::StringRef setting_name)
static bool SetDisassemblerPluginEnabled(llvm::StringRef name, bool enable)
static bool SetSystemRuntimePluginEnabled(llvm::StringRef name, bool enable)
static llvm::SmallVector< RegisteredPluginInfo > GetTracePluginInfo()
static llvm::SmallVector< JITLoaderCreateInstance > GetJITLoaderCreateCallbacks()
static llvm::SmallVector< RegisteredPluginInfo > GetProcessPluginInfo()
static TraceCreateInstanceForLiveProcess GetTraceCreateCallbackForLiveProcess(llvm::StringRef plugin_name)
static std::unique_ptr< Architecture > CreateArchitectureInstance(const ArchSpec &arch)
static llvm::SmallVector< DisassemblerCreateInstance > GetDisassemblerCreateCallbacks()
static lldb::OptionValuePropertiesSP GetSettingForSymbolLocatorPlugin(Debugger &debugger, llvm::StringRef setting_name)
static bool SetStructuredDataPluginEnabled(llvm::StringRef name, bool enable)
static llvm::SmallVector< ObjectFileCallbacks > GetObjectFileCallbacks()
static uint32_t GetNumScriptedInterfaces()
static llvm::SmallVector< RegisteredPluginInfo > GetLanguageRuntimePluginInfo()
static bool SetObjectContainerPluginEnabled(llvm::StringRef name, bool enable)
static bool CreateSettingForProcessPlugin(Debugger &debugger, const lldb::OptionValuePropertiesSP &properties_sp, llvm::StringRef description, bool is_global_property)
static llvm::SmallVector< RegisteredPluginInfo > GetPlatformPluginInfo()
static llvm::SmallVector< RegisteredPluginInfo > GetMemoryHistoryPluginInfo()
static llvm::SmallVector< TypeSystemCreateInstance > GetTypeSystemCreateCallbacks()
static lldb::OptionValuePropertiesSP GetSettingForPlatformPlugin(Debugger &debugger, llvm::StringRef setting_name)
static llvm::SmallVector< RegisteredPluginInfo > GetSymbolFilePluginInfo()
static SyntheticFrameProviderCreateInstance GetSyntheticFrameProviderCreateCallbackForPluginName(llvm::StringRef name)
static llvm::SmallVector< SymbolLocatorCreateInstance > GetSymbolLocatorCreateCallbacks()
static llvm::ArrayRef< PluginNamespace > GetPluginNamespaces()
static bool SetTypeSystemPluginEnabled(llvm::StringRef name, bool enable)
static bool SetTracePluginEnabled(llvm::StringRef name, bool enable)
static Status SaveCore(lldb_private::SaveCoreOptions &core_options)
static llvm::SmallVector< RegisteredPluginInfo > GetTraceExporterPluginInfo()
static FileSpec LocateExecutableSymbolFile(const ModuleSpec &module_spec, const FileSpecList &default_search_paths, StatisticsMap &map)
static bool SetEmulateInstructionPluginEnabled(llvm::StringRef name, bool enable)
static lldb::OptionValuePropertiesSP GetSettingForJITLoaderPlugin(Debugger &debugger, llvm::StringRef setting_name)
static DisassemblerCreateInstance GetDisassemblerCreateCallbackForPluginName(llvm::StringRef name)
static bool SetJITLoaderPluginEnabled(llvm::StringRef name, bool enable)
static llvm::SmallVector< RegisteredPluginInfo > GetInstrumentationRuntimePluginInfo()
static llvm::SmallVector< REPLCallbacks > GetREPLCallbacks()
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 bool SetSymbolFilePluginEnabled(llvm::StringRef name, bool enable)
static llvm::SmallVector< ScriptInterpreterCreateInstance > GetScriptInterpreterCreateCallbacks()
static llvm::SmallVector< RegisteredPluginInfo > GetRegisterTypeBuilderPluginInfo()
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 bool CreateSettingForCPlusPlusLanguagePlugin(Debugger &debugger, const lldb::OptionValuePropertiesSP &properties_sp, llvm::StringRef description, bool is_global_property)
static llvm::SmallVector< TraceExporterCallbacks > GetTraceExporterCallbacks()
static llvm::SmallVector< RegisteredPluginInfo > GetSymbolVendorPluginInfo()
static DynamicLoaderCreateInstance GetDynamicLoaderCreateCallbackForPluginName(llvm::StringRef name)
static llvm::SmallVector< EmulateInstructionCreateInstance > GetEmulateInstructionCreateCallbacks()
static PlatformCreateInstance GetPlatformCreateCallbackForPluginName(llvm::StringRef name)
static bool SetProcessPluginEnabled(llvm::StringRef name, bool enable)
static llvm::SmallVector< llvm::StringRef > GetSaveCorePluginNames()
static llvm::SmallVector< RegisteredPluginInfo > GetOperatingSystemPluginInfo()
static llvm::SmallVector< ScriptedFrameProviderCreateInstance > GetScriptedFrameProviderCreateCallbacks()
static bool SetABIPluginEnabled(llvm::StringRef name, bool enable)
static llvm::SmallVector< RegisteredPluginInfo > GetScriptedInterfacePluginInfo()
static lldb::OptionValuePropertiesSP GetSettingForProcessPlugin(Debugger &debugger, llvm::StringRef setting_name)
static ProcessCreateInstance GetProcessCreateCallbackForPluginName(llvm::StringRef name)
static void AutoCompletePluginName(llvm::StringRef partial_name, CompletionRequest &request)
static llvm::StringRef GetScriptedInterfaceDescriptionAtIndex(uint32_t idx)
static llvm::StringRef GetProcessPluginDescriptionAtIndex(uint32_t idx)
static llvm::StringRef GetProtocolServerPluginNameAtIndex(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 bool SetLanguagePluginEnabled(llvm::StringRef name, bool enable)
static llvm::SmallVector< RegisteredPluginInfo > GetREPLPluginInfo()
static bool SetREPLPluginEnabled(llvm::StringRef name, bool enable)
static llvm::SmallVector< HighlighterCreateInstance > GetHighlighterCreateCallbacks()
static llvm::SmallVector< RegisteredPluginInfo > GetUnwindAssemblyPluginInfo()
static llvm::StringRef GetPlatformPluginNameAtIndex(uint32_t idx)
static bool SetSymbolVendorPluginEnabled(llvm::StringRef name, bool enable)
static TraceCreateInstanceFromBundle GetTraceCreateCallback(llvm::StringRef plugin_name)
static void DebuggerInitialize(Debugger &debugger)
static llvm::StringRef GetScriptedInterfaceNameAtIndex(uint32_t idx)
static llvm::SmallVector< ObjectContainerCallbacks > GetObjectContainerCallbacks()
static llvm::StringRef GetProcessPluginNameAtIndex(uint32_t idx)
static ModuleSpec LocateExecutableObjectFile(const ModuleSpec &module_spec, StatisticsMap &map)
static llvm::SmallVector< StructuredDataPluginCallbacks > GetStructuredDataPluginCallbacks()
static LanguageSet GetAllTypeSystemSupportedLanguagesForTypes()
static llvm::SmallVector< SystemRuntimeCreateInstance > GetSystemRuntimeCreateCallbacks()
static FileSpec GetScriptInterpreterLibraryPath(lldb::ScriptLanguage script_lang)
static bool UnregisterPlugin(ABICreateInstance create_callback)
static FileSpec FindSymbolFileInBundle(const FileSpec &dsym_bundle_fspec, const UUID *uuid, const ArchSpec *arch)
static llvm::SmallVector< RegisteredPluginInfo > GetStructuredDataPluginInfo()
static bool SetSymbolLocatorPluginEnabled(llvm::StringRef name, bool enable)
static ProtocolServerCreateInstance GetProtocolCreateCallbackForPluginName(llvm::StringRef name)
static llvm::SmallVector< LanguageCreateInstance > GetLanguageCreateCallbacks()
static llvm::SmallVector< DynamicLoaderCreateInstance > GetDynamicLoaderCreateCallbacks()
static lldb::RegisterTypeBuilderSP GetRegisterTypeBuilder(Target &target)
static llvm::SmallVector< MemoryHistoryCreateInstance > GetMemoryHistoryCreateCallbacks()
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 llvm::SmallVector< RegisteredPluginInfo > GetJITLoaderPluginInfo()
static bool SetObjectFilePluginEnabled(llvm::StringRef name, bool enable)
static llvm::SmallVector< PlatformCreateInstance > GetPlatformCreateCallbacks()
PluginNamespace(llvm::StringRef name, GetPluginInfo get_info, SetPluginEnabledAllDomains set_enabled)
Plugin that supports enable/disable in all domains.
std::optional< SetPluginEnabledGlobalDomain > GetSetEnabledGlobalFn() const
std::variant< SetPluginEnabledGlobalDomain, SetPluginEnabledAllDomains > set_enabled_fn
PluginNamespace(llvm::StringRef name, GetPluginInfo get_info, SetPluginEnabledGlobalDomain set_enabled)
Plugin that only supports enable/disable in the global domain.
std::optional< SetPluginEnabledAllDomains > GetSetEnabledAllDomainsFn() const
bool SupportsOnlyDomain(lldb::PluginDomainKind domain) const
static constexpr uint8_t kAllDomains
bool SupportsDomain(lldb::PluginDomainKind domain) const
A class to count time for plugins.
Definition Statistics.h:94
An error handling class.
Definition Status.h:118
Represents UUID's of various sizes.
Definition UUID.h:27
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)
FileSpec(* ScriptInterpreterGetPath)()
lldb::RegisterTypeBuilderSP(* RegisterTypeBuilderCreateInstance)(Target &target)
std::function< llvm::SmallVector< RegisteredPluginInfo >()> GetPluginInfo
lldb::ProtocolServerUP(* ProtocolServerCreateInstance)()
LanguageRuntime *(* LanguageRuntimeCreateInstance)(Process *process, lldb::LanguageType language)
lldb::InstrumentationRuntimeType(* InstrumentationRuntimeGetType)()
llvm::Expected< lldb::TraceSP >(* TraceCreateInstanceFromBundle)(const llvm::json::Value &trace_bundle_description, llvm::StringRef session_file_dir, lldb_private::Debugger &debugger)
Trace.
lldb::DisassemblerSP(* DisassemblerCreateInstance)(const ArchSpec &arch, const char *flavor, const char *cpu, const char *features)
std::optional< FileSpec >(* SymbolLocatorLocateExecutableSymbolFile)(const ModuleSpec &module_spec, const FileSpecList &default_search_paths)
std::function< bool(llvm::StringRef, bool)> SetPluginEnabledGlobalDomain
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)
void(* DebuggerInitializeCallback)(Debugger &debugger)
std::unique_ptr< Architecture >(* ArchitectureCreateInstance)(const ArchSpec &arch)
lldb::ScriptInterpreterSP(* ScriptInterpreterCreateInstance)(Debugger &debugger)
lldb::PlatformSP(* PlatformCreateInstance)(bool force, const ArchSpec *arch)
bool(* ScriptedInterfaceCreateInstance)(lldb::ScriptLanguage language, ScriptedInterfaceUsages usages)
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::TypeSystemSP(* TypeSystemCreateInstance)(lldb::LanguageType language, Module *module, Target *target)
lldb::BreakpointPreconditionSP(* LanguageRuntimeGetExceptionPrecondition)(lldb::LanguageType language, bool throw_bp)
ObjectContainer *(* ObjectContainerCreateInstance)(const lldb::ModuleSP &module_sp, lldb::DataBufferSP &data_sp, lldb::offset_t data_offset, const FileSpec *file, lldb::offset_t offset, lldb::offset_t length)
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)
SymbolLocator *(* SymbolLocatorCreateInstance)()
std::optional< ModuleSpec >(* SymbolLocatorLocateExecutableObjectFile)(const ModuleSpec &module_spec)
lldb::CommandObjectSP(* LanguageRuntimeGetCommandObject)(CommandInterpreter &interpreter)
DynamicLoader *(* DynamicLoaderCreateInstance)(Process *process, bool force)
lldb::StructuredDataPluginSP(* StructuredDataPluginCreateInstance)(Process &process)
lldb::JITLoaderSP(* JITLoaderCreateInstance)(Process *process, bool force)
llvm::Expected< lldb::SyntheticFrameProviderSP >(* SyntheticFrameProviderCreateInstance)(lldb::StackFrameListSP input_frames, const std::vector< lldb_private::ThreadSpec > &thread_specs)
OperatingSystem *(* OperatingSystemCreateInstance)(Process *process, bool force)
lldb::REPLSP(* REPLCreateInstance)(Status &error, lldb::LanguageType language, Debugger *debugger, Target *target, const char *repl_options)
SymbolFile *(* SymbolFileCreateInstance)(lldb::ObjectFileSP objfile_sp)
llvm::Expected< lldb::TraceExporterUP >(* TraceExporterCreateInstance)()
Highlighter *(* HighlighterCreateInstance)(lldb::LanguageType language)
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)
ObjectFile *(* ObjectFileCreateInstance)(const lldb::ModuleSP &module_sp, lldb::DataExtractorSP extractor_sp, lldb::offset_t data_offset, const FileSpec *file, lldb::offset_t file_offset, lldb::offset_t length)
ModuleSpecList(* ObjectFileGetModuleSpecifications)(const FileSpec &file, lldb::DataExtractorSP &extractor_sp, lldb::offset_t file_offset, lldb::offset_t length)
lldb::ABISP(* ABICreateInstance)(lldb::ProcessSP process_sp, const ArchSpec &arch)
llvm::Expected< lldb::SyntheticFrameProviderSP >(* ScriptedFrameProviderCreateInstance)(lldb::StackFrameListSP input_frames, const lldb_private::ScriptedFrameProviderDescriptor &descriptor)
lldb::CommandObjectSP(* ThreadTraceExportCommandCreator)(CommandInterpreter &interpreter)
std::function< llvm::Error( llvm::StringRef, bool, Debugger &, lldb::PluginDomainKind)> SetPluginEnabledAllDomains
lldb::InstrumentationRuntimeSP(* InstrumentationRuntimeCreateInstance)(const lldb::ProcessSP &process_sp)
ScriptLanguage
Script interpreter types.
std::shared_ptr< lldb_private::OptionValueProperties > OptionValuePropertiesSP
std::shared_ptr< lldb_private::ScriptInterpreter > ScriptInterpreterSP
@ ePluginDomainKindTarget
@ ePluginDomainKindGlobal
@ ePluginDomainKindDebugger
std::shared_ptr< lldb_private::RegisterTypeBuilder > RegisterTypeBuilderSP
InstrumentationRuntimeGetType get_type_callback
InstrumentationRuntimeCreateInstance create_callback
LanguageRuntimeGetExceptionPrecondition precondition_callback
LanguageRuntimeGetCommandObject command_callback
LanguageRuntimeCreateInstance create_callback
A SmallBitVector that represents a set of source languages (lldb::LanguageType).
Definition Type.h:38
ObjectContainerCreateMemoryInstance create_memory_callback
ObjectContainerCreateInstance create_callback
ObjectFileGetModuleSpecifications get_module_specifications
ObjectFileCreateMemoryInstance create_memory_callback
ObjectFileCreateInstance create_callback
ObjectFileGetModuleSpecifications get_module_specifications
REPLCreateInstance create_callback
StructuredDataFilterLaunchInfo filter_callback
StructuredDataPluginCreateInstance create_callback
ThreadTraceExportCommandCreator create_thread_trace_export_command
TraceExporterCreateInstance create_callback