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 // BugReporter
234 static void RegisterPlugin(llvm::StringRef name, llvm::StringRef description,
235 BugReporterCreateInstance create_callback);
236
237 static void UnregisterPlugin(BugReporterCreateInstance create_callback);
238
239 static std::unique_ptr<BugReporter>
240 CreateBugReporterInstance(llvm::StringRef name = {});
241
242 // Disassembler
243 static bool RegisterPlugin(llvm::StringRef name, llvm::StringRef description,
244 DisassemblerCreateInstance create_callback);
245
246 static bool UnregisterPlugin(DisassemblerCreateInstance create_callback);
247
248 static llvm::SmallVector<DisassemblerCreateInstance>
250
252 GetDisassemblerCreateCallbackForPluginName(llvm::StringRef name);
253
254 // DynamicLoader
255 static bool
256 RegisterPlugin(llvm::StringRef name, llvm::StringRef description,
257 DynamicLoaderCreateInstance create_callback,
258 DebuggerInitializeCallback debugger_init_callback = nullptr);
259
260 static bool UnregisterPlugin(DynamicLoaderCreateInstance create_callback);
261
262 static llvm::SmallVector<DynamicLoaderCreateInstance>
264
267
268 // JITLoader
269 static bool
270 RegisterPlugin(llvm::StringRef name, llvm::StringRef description,
271 JITLoaderCreateInstance create_callback,
272 DebuggerInitializeCallback debugger_init_callback = nullptr);
273
274 static bool UnregisterPlugin(JITLoaderCreateInstance create_callback);
275
276 static llvm::SmallVector<JITLoaderCreateInstance>
278
279 // EmulateInstruction
280 static bool RegisterPlugin(llvm::StringRef name, llvm::StringRef description,
281 EmulateInstructionCreateInstance create_callback);
282
283 static bool
285
286 static llvm::SmallVector<EmulateInstructionCreateInstance>
288
291
292 // OperatingSystem
293 static bool RegisterPlugin(llvm::StringRef name, llvm::StringRef description,
294 OperatingSystemCreateInstance create_callback,
295 DebuggerInitializeCallback debugger_init_callback);
296
297 static bool UnregisterPlugin(OperatingSystemCreateInstance create_callback);
298
299 static llvm::SmallVector<OperatingSystemCreateInstance>
301
304
305 // Language
306 static bool
307 RegisterPlugin(llvm::StringRef name, llvm::StringRef description,
308 LanguageCreateInstance create_callback,
309 DebuggerInitializeCallback debugger_init_callback = nullptr);
310
311 static bool UnregisterPlugin(LanguageCreateInstance create_callback);
312
313 static llvm::SmallVector<LanguageCreateInstance> GetLanguageCreateCallbacks();
314
315 // LanguageRuntime
316 static bool RegisterPlugin(
317 llvm::StringRef name, llvm::StringRef description,
318 LanguageRuntimeCreateInstance create_callback,
319 LanguageRuntimeGetCommandObject command_callback = nullptr,
320 LanguageRuntimeGetExceptionPrecondition precondition_callback = nullptr);
321
322 static bool UnregisterPlugin(LanguageRuntimeCreateInstance create_callback);
323
324 static llvm::SmallVector<LanguageRuntimeCallbacks>
326
327 // SystemRuntime
328 static bool RegisterPlugin(llvm::StringRef name, llvm::StringRef description,
329 SystemRuntimeCreateInstance create_callback);
330
331 static bool UnregisterPlugin(SystemRuntimeCreateInstance create_callback);
332
333 static llvm::SmallVector<SystemRuntimeCreateInstance>
335
336 // ObjectFile
337 static bool
338 RegisterPlugin(llvm::StringRef name, llvm::StringRef description,
339 ObjectFileCreateInstance create_callback,
340 ObjectFileCreateMemoryInstance create_memory_callback,
341 ObjectFileGetModuleSpecifications get_module_specifications,
342 ObjectFileSaveCore save_core = nullptr,
343 DebuggerInitializeCallback debugger_init_callback = nullptr);
344
345 static bool UnregisterPlugin(ObjectFileCreateInstance create_callback);
346
347 static bool IsRegisteredObjectFilePluginName(llvm::StringRef name);
348
349 static llvm::SmallVector<ObjectFileCallbacks> GetObjectFileCallbacks();
350
353
354 static Status SaveCore(lldb_private::SaveCoreOptions &core_options);
355
356 static llvm::SmallVector<llvm::StringRef> GetSaveCorePluginNames();
357
358 // ObjectContainer
359 static bool RegisterPlugin(
360 llvm::StringRef name, llvm::StringRef description,
361 ObjectContainerCreateInstance create_callback,
362 ObjectFileGetModuleSpecifications get_module_specifications,
363 ObjectContainerCreateMemoryInstance create_memory_callback = nullptr);
364
365 static bool UnregisterPlugin(ObjectContainerCreateInstance create_callback);
366
367 static llvm::SmallVector<ObjectContainerCallbacks>
369
370 // Platform
371 static bool
372 RegisterPlugin(llvm::StringRef name, llvm::StringRef description,
373 PlatformCreateInstance create_callback,
374 DebuggerInitializeCallback debugger_init_callback = nullptr);
375
376 static bool UnregisterPlugin(PlatformCreateInstance create_callback);
377
378 static llvm::SmallVector<PlatformCreateInstance> GetPlatformCreateCallbacks();
379
381 GetPlatformCreateCallbackForPluginName(llvm::StringRef name);
382
383 static llvm::StringRef GetPlatformPluginNameAtIndex(uint32_t idx);
384
385 static llvm::StringRef GetPlatformPluginDescriptionAtIndex(uint32_t idx);
386
387 static void AutoCompletePlatformName(llvm::StringRef partial_name,
388 CompletionRequest &request);
389 // Process
390 static bool
391 RegisterPlugin(llvm::StringRef name, llvm::StringRef description,
392 ProcessCreateInstance create_callback,
393 DebuggerInitializeCallback debugger_init_callback = nullptr);
394
395 static bool UnregisterPlugin(ProcessCreateInstance create_callback);
396
397 static llvm::SmallVector<ProcessCreateInstance> GetProcessCreateCallbacks();
398
400 GetProcessCreateCallbackForPluginName(llvm::StringRef name);
401
402 static llvm::StringRef GetProcessPluginNameAtIndex(uint32_t idx);
403
404 static llvm::StringRef GetProcessPluginDescriptionAtIndex(uint32_t idx);
405
406 static void AutoCompleteProcessName(llvm::StringRef partial_name,
407 CompletionRequest &request);
408
409 // Protocol
410 static bool RegisterPlugin(llvm::StringRef name, llvm::StringRef description,
411 ProtocolServerCreateInstance create_callback);
412
413 static bool UnregisterPlugin(ProtocolServerCreateInstance create_callback);
414
415 static llvm::StringRef GetProtocolServerPluginNameAtIndex(uint32_t idx);
416
418 GetProtocolCreateCallbackForPluginName(llvm::StringRef name);
419
420 // Register Type Provider
421 static bool RegisterPlugin(llvm::StringRef name, llvm::StringRef description,
422 RegisterTypeBuilderCreateInstance create_callback);
423
424 static bool
426
428
429 // ScriptInterpreter
430 static bool
431 RegisterPlugin(llvm::StringRef name, llvm::StringRef description,
432 lldb::ScriptLanguage script_lang,
433 ScriptInterpreterCreateInstance create_callback,
434 ScriptInterpreterGetPath get_path_callback = nullptr);
435
436 static bool UnregisterPlugin(ScriptInterpreterCreateInstance create_callback);
437
438 static llvm::SmallVector<ScriptInterpreterCreateInstance>
440
443 Debugger &debugger);
444
445 static FileSpec
447
448 // SyntheticFrameProvider
449 static bool
450 RegisterPlugin(llvm::StringRef name, llvm::StringRef description,
451 SyntheticFrameProviderCreateInstance create_native_callback,
452 ScriptedFrameProviderCreateInstance create_scripted_callback);
453
454 static bool
456
457 static bool
459
462
463 static llvm::SmallVector<ScriptedFrameProviderCreateInstance>
465
466 // StructuredDataPlugin
467
468 /// Register a StructuredDataPlugin class along with optional
469 /// callbacks for debugger initialization and Process launch info
470 /// filtering and manipulation.
471 ///
472 /// \param[in] name
473 /// The name of the plugin.
474 ///
475 /// \param[in] description
476 /// A description string for the plugin.
477 ///
478 /// \param[in] create_callback
479 /// The callback that will be invoked to create an instance of
480 /// the callback. This may not be nullptr.
481 ///
482 /// \param[in] debugger_init_callback
483 /// An optional callback that will be made when a Debugger
484 /// instance is initialized.
485 ///
486 /// \param[in] filter_callback
487 /// An optional callback that will be invoked before LLDB
488 /// launches a process for debugging. The callback must
489 /// do the following:
490 /// 1. Only do something if the plugin's behavior is enabled.
491 /// 2. Only make changes for processes that are relevant to the
492 /// plugin. The callback gets a pointer to the Target, which
493 /// can be inspected as needed. The ProcessLaunchInfo is
494 /// provided in read-write mode, and may be modified by the
495 /// plugin if, for instance, additional environment variables
496 /// are needed to support the feature when enabled.
497 ///
498 /// \return
499 /// Returns true upon success; otherwise, false.
500 static bool
501 RegisterPlugin(llvm::StringRef name, llvm::StringRef description,
503 DebuggerInitializeCallback debugger_init_callback = nullptr,
504 StructuredDataFilterLaunchInfo filter_callback = nullptr);
505
506 static bool
508
509 static llvm::SmallVector<StructuredDataPluginCallbacks>
511
512 // SymbolFile
513 static bool
514 RegisterPlugin(llvm::StringRef name, llvm::StringRef description,
515 SymbolFileCreateInstance create_callback,
516 DebuggerInitializeCallback debugger_init_callback = nullptr);
517
518 static bool UnregisterPlugin(SymbolFileCreateInstance create_callback);
519
520 static llvm::SmallVector<SymbolFileCreateInstance>
522
523 // SymbolVendor
524 static bool RegisterPlugin(llvm::StringRef name, llvm::StringRef description,
525 SymbolVendorCreateInstance create_callback);
526
527 static bool UnregisterPlugin(SymbolVendorCreateInstance create_callback);
528
529 static llvm::SmallVector<SymbolVendorCreateInstance>
531
532 // SymbolLocator
533 static bool RegisterPlugin(
534 llvm::StringRef name, llvm::StringRef description,
535 SymbolLocatorCreateInstance create_callback,
536 SymbolLocatorLocateExecutableObjectFile locate_executable_object_file =
537 nullptr,
538 SymbolLocatorLocateExecutableSymbolFile locate_executable_symbol_file =
539 nullptr,
540 SymbolLocatorDownloadObjectAndSymbolFile download_object_symbol_file =
541 nullptr,
542 SymbolLocatorFindSymbolFileInBundle find_symbol_file_in_bundle = nullptr,
543 DebuggerInitializeCallback debugger_init_callback = nullptr);
544
545 static bool UnregisterPlugin(SymbolLocatorCreateInstance create_callback);
546
547 static llvm::SmallVector<SymbolLocatorCreateInstance>
549
550 static ModuleSpec LocateExecutableObjectFile(const ModuleSpec &module_spec,
551 StatisticsMap &map);
552
553 static FileSpec
554 LocateExecutableSymbolFile(const ModuleSpec &module_spec,
555 const FileSpecList &default_search_paths,
556 StatisticsMap &map);
557
558 static bool DownloadObjectAndSymbolFile(ModuleSpec &module_spec,
559 Status &error,
560 bool force_lookup = true,
561 bool copy_executable = true);
562
563 static FileSpec FindSymbolFileInBundle(const FileSpec &dsym_bundle_fspec,
564 const UUID *uuid,
565 const ArchSpec *arch);
566
567 // Trace
568 static bool RegisterPlugin(
569 llvm::StringRef name, llvm::StringRef description,
570 TraceCreateInstanceFromBundle create_callback_from_bundle,
571 TraceCreateInstanceForLiveProcess create_callback_for_live_process,
572 llvm::StringRef schema,
573 DebuggerInitializeCallback debugger_init_callback);
574
575 static bool UnregisterPlugin(TraceCreateInstanceFromBundle create_callback);
576
578 GetTraceCreateCallback(llvm::StringRef plugin_name);
579
581 GetTraceCreateCallbackForLiveProcess(llvm::StringRef plugin_name);
582
583 /// Get the JSON schema for a trace bundle description file corresponding to
584 /// the given plugin.
585 ///
586 /// \param[in] plugin_name
587 /// The name of the plugin.
588 ///
589 /// \return
590 /// An empty \a StringRef if no plugin was found with that plugin name,
591 /// otherwise the actual schema is returned.
592 static llvm::StringRef GetTraceSchema(llvm::StringRef plugin_name);
593
594 /// Get the JSON schema for a trace bundle description file corresponding to
595 /// the plugin given by its index.
596 ///
597 /// \param[in] index
598 /// The index of the plugin to get the schema of.
599 ///
600 /// \return
601 /// An empty \a StringRef if the index is greater than or equal to the
602 /// number plugins, otherwise the actual schema is returned.
603 static llvm::StringRef GetTraceSchema(size_t index);
604
605 // TraceExporter
606
607 /// \param[in] create_thread_trace_export_command
608 /// This callback is used to create a CommandObject that will be listed
609 /// under "thread trace export". Can be \b null.
610 static bool RegisterPlugin(
611 llvm::StringRef name, llvm::StringRef description,
612 TraceExporterCreateInstance create_callback,
613 ThreadTraceExportCommandCreator create_thread_trace_export_command);
614
616 GetTraceExporterCreateCallback(llvm::StringRef plugin_name);
617
618 static bool UnregisterPlugin(TraceExporterCreateInstance create_callback);
619
620 static llvm::SmallVector<TraceExporterCallbacks> GetTraceExporterCallbacks();
621
622 // UnwindAssembly
623 static bool RegisterPlugin(llvm::StringRef name, llvm::StringRef description,
624 UnwindAssemblyCreateInstance create_callback);
625
626 static bool UnregisterPlugin(UnwindAssemblyCreateInstance create_callback);
627
628 static llvm::SmallVector<UnwindAssemblyCreateInstance>
630
631 // MemoryHistory
632 static bool RegisterPlugin(llvm::StringRef name, llvm::StringRef description,
633 MemoryHistoryCreateInstance create_callback);
634
635 static bool UnregisterPlugin(MemoryHistoryCreateInstance create_callback);
636
637 static llvm::SmallVector<MemoryHistoryCreateInstance>
639
640 // InstrumentationRuntime
641 static bool
642 RegisterPlugin(llvm::StringRef name, llvm::StringRef description,
644 InstrumentationRuntimeGetType get_type_callback);
645
646 static bool
648
649 static llvm::SmallVector<InstrumentationRuntimeCallbacks>
650 GetInstrumentationRuntimeCallbacks(bool enabled_only = true);
651
652 // TypeSystem
653 static bool RegisterPlugin(llvm::StringRef name, llvm::StringRef description,
654 TypeSystemCreateInstance create_callback,
655 LanguageSet supported_languages_for_types,
656 LanguageSet supported_languages_for_expressions);
657
658 static bool UnregisterPlugin(TypeSystemCreateInstance create_callback);
659
660 static llvm::SmallVector<TypeSystemCreateInstance>
662
664
666
667 // Scripted Interface
668 static bool RegisterPlugin(llvm::StringRef name, llvm::StringRef description,
669 ScriptedInterfaceCreateInstance create_callback,
670 lldb::ScriptLanguage language,
672
673 static bool UnregisterPlugin(ScriptedInterfaceCreateInstance create_callback);
674
675 static uint32_t GetNumScriptedInterfaces();
676
677 static llvm::StringRef GetScriptedInterfaceNameAtIndex(uint32_t idx);
678
679 static llvm::StringRef GetScriptedInterfaceDescriptionAtIndex(uint32_t idx);
680
682
685
686 // REPL
687 static bool RegisterPlugin(llvm::StringRef name, llvm::StringRef description,
688 REPLCreateInstance create_callback,
689 LanguageSet supported_languages);
690
691 static bool UnregisterPlugin(REPLCreateInstance create_callback);
692
693 static llvm::SmallVector<REPLCallbacks> GetREPLCallbacks();
694
696
697 // Higlhighter
698 static bool RegisterPlugin(llvm::StringRef name, llvm::StringRef description,
699 HighlighterCreateInstance create_callback);
700
701 static bool UnregisterPlugin(HighlighterCreateInstance create_callback);
702
703 static llvm::SmallVector<HighlighterCreateInstance>
705
706 // Some plug-ins might register a DebuggerInitializeCallback callback when
707 // registering the plug-in. After a new Debugger instance is created, this
708 // DebuggerInitialize function will get called. This allows plug-ins to
709 // install Properties and do any other initialization that requires a
710 // debugger instance.
711 static void DebuggerInitialize(Debugger &debugger);
712
715 llvm::StringRef setting_name);
716
718 Debugger &debugger, const lldb::OptionValuePropertiesSP &properties_sp,
719 llvm::StringRef description, bool is_global_property);
720
722 GetSettingForPlatformPlugin(Debugger &debugger, llvm::StringRef setting_name);
723
725 Debugger &debugger, const lldb::OptionValuePropertiesSP &properties_sp,
726 llvm::StringRef description, bool is_global_property);
727
729 GetSettingForProcessPlugin(Debugger &debugger, llvm::StringRef setting_name);
730
732 Debugger &debugger, const lldb::OptionValuePropertiesSP &properties_sp,
733 llvm::StringRef description, bool is_global_property);
734
737 llvm::StringRef setting_name);
738
740 Debugger &debugger, const lldb::OptionValuePropertiesSP &properties_sp,
741 llvm::StringRef description, bool is_global_property);
742
743 static bool CreateSettingForTracePlugin(
744 Debugger &debugger, const lldb::OptionValuePropertiesSP &properties_sp,
745 llvm::StringRef description, bool is_global_property);
746
749 llvm::StringRef setting_name);
750
752 Debugger &debugger, const lldb::OptionValuePropertiesSP &properties_sp,
753 llvm::StringRef description, bool is_global_property);
754
757 llvm::StringRef setting_name);
758
760 Debugger &debugger, const lldb::OptionValuePropertiesSP &properties_sp,
761 llvm::StringRef description, bool is_global_property);
762
765 llvm::StringRef setting_name);
766
768 Debugger &debugger, const lldb::OptionValuePropertiesSP &properties_sp,
769 llvm::StringRef description, bool is_global_property);
770
773 llvm::StringRef setting_name);
774
776 Debugger &debugger, const lldb::OptionValuePropertiesSP &properties_sp,
777 llvm::StringRef description, bool is_global_property);
778
781 llvm::StringRef setting_name);
782
784 Debugger &debugger, const lldb::OptionValuePropertiesSP &properties_sp,
785 llvm::StringRef description, bool is_global_property);
786
789 llvm::StringRef setting_name);
790
792 Debugger &debugger, const lldb::OptionValuePropertiesSP &properties_sp,
793 llvm::StringRef description, bool is_global_property);
794
795 //
796 // Plugin Info+Enable Declarations
797 //
798 static llvm::SmallVector<RegisteredPluginInfo> GetABIPluginInfo();
799 static bool SetABIPluginEnabled(llvm::StringRef name, bool enable);
800
801 static llvm::SmallVector<RegisteredPluginInfo> GetArchitecturePluginInfo();
802 static bool SetArchitecturePluginEnabled(llvm::StringRef name, bool enable);
803
804 static llvm::SmallVector<RegisteredPluginInfo> GetBugReporterPluginInfo();
805 static bool SetBugReporterPluginEnabled(llvm::StringRef name, bool enable);
806
807 static llvm::SmallVector<RegisteredPluginInfo> GetDisassemblerPluginInfo();
808 static bool SetDisassemblerPluginEnabled(llvm::StringRef name, bool enable);
809
810 static llvm::SmallVector<RegisteredPluginInfo> GetDynamicLoaderPluginInfo();
811 static bool SetDynamicLoaderPluginEnabled(llvm::StringRef name, bool enable);
812
813 static llvm::SmallVector<RegisteredPluginInfo>
815 static bool SetEmulateInstructionPluginEnabled(llvm::StringRef name,
816 bool enable);
817
818 static llvm::SmallVector<RegisteredPluginInfo>
820 static llvm::StringRef PluginDomainKindToStr(lldb::PluginDomainKind kind);
821 static llvm::Error
822 SetInstrumentationRuntimePluginEnabled(llvm::StringRef name, bool enable,
823 Debugger &requesting_debugger,
825
826 static llvm::SmallVector<RegisteredPluginInfo> GetJITLoaderPluginInfo();
827 static bool SetJITLoaderPluginEnabled(llvm::StringRef name, bool enable);
828
829 static llvm::SmallVector<RegisteredPluginInfo> GetLanguagePluginInfo();
830 static bool SetLanguagePluginEnabled(llvm::StringRef name, bool enable);
831
832 static llvm::SmallVector<RegisteredPluginInfo> GetLanguageRuntimePluginInfo();
833 static bool SetLanguageRuntimePluginEnabled(llvm::StringRef name,
834 bool enable);
835
836 static llvm::SmallVector<RegisteredPluginInfo> GetMemoryHistoryPluginInfo();
837 static bool SetMemoryHistoryPluginEnabled(llvm::StringRef name, bool enable);
838
839 static llvm::SmallVector<RegisteredPluginInfo> GetObjectContainerPluginInfo();
840 static bool SetObjectContainerPluginEnabled(llvm::StringRef name,
841 bool enable);
842
843 static llvm::SmallVector<RegisteredPluginInfo> GetObjectFilePluginInfo();
844 static bool SetObjectFilePluginEnabled(llvm::StringRef name, bool enable);
845
846 static llvm::SmallVector<RegisteredPluginInfo> GetOperatingSystemPluginInfo();
847 static bool SetOperatingSystemPluginEnabled(llvm::StringRef name,
848 bool enable);
849
850 static llvm::SmallVector<RegisteredPluginInfo> GetPlatformPluginInfo();
851 static bool SetPlatformPluginEnabled(llvm::StringRef name, bool enable);
852
853 static llvm::SmallVector<RegisteredPluginInfo> GetProcessPluginInfo();
854 static bool SetProcessPluginEnabled(llvm::StringRef name, bool enable);
855
856 static llvm::SmallVector<RegisteredPluginInfo> GetREPLPluginInfo();
857 static bool SetREPLPluginEnabled(llvm::StringRef name, bool enable);
858
859 static llvm::SmallVector<RegisteredPluginInfo>
861 static bool SetRegisterTypeBuilderPluginEnabled(llvm::StringRef name,
862 bool enable);
863
864 static llvm::SmallVector<RegisteredPluginInfo>
866 static bool SetScriptInterpreterPluginEnabled(llvm::StringRef name,
867 bool enable);
868
869 static llvm::SmallVector<RegisteredPluginInfo>
871 static bool SetScriptedInterfacePluginEnabled(llvm::StringRef name,
872 bool enable);
873
874 static llvm::SmallVector<RegisteredPluginInfo> GetStructuredDataPluginInfo();
875 static bool SetStructuredDataPluginEnabled(llvm::StringRef name, bool enable);
876
877 static llvm::SmallVector<RegisteredPluginInfo> GetSymbolFilePluginInfo();
878 static bool SetSymbolFilePluginEnabled(llvm::StringRef name, bool enable);
879
880 static llvm::SmallVector<RegisteredPluginInfo> GetSymbolLocatorPluginInfo();
881 static bool SetSymbolLocatorPluginEnabled(llvm::StringRef name, bool enable);
882
883 static llvm::SmallVector<RegisteredPluginInfo> GetSymbolVendorPluginInfo();
884 static bool SetSymbolVendorPluginEnabled(llvm::StringRef name, bool enable);
885
886 static llvm::SmallVector<RegisteredPluginInfo> GetSystemRuntimePluginInfo();
887 static bool SetSystemRuntimePluginEnabled(llvm::StringRef name, bool enable);
888
889 static llvm::SmallVector<RegisteredPluginInfo> GetTracePluginInfo();
890 static bool SetTracePluginEnabled(llvm::StringRef name, bool enable);
891
892 static llvm::SmallVector<RegisteredPluginInfo> GetTraceExporterPluginInfo();
893 static bool SetTraceExporterPluginEnabled(llvm::StringRef name, bool enable);
894
895 static llvm::SmallVector<RegisteredPluginInfo> GetTypeSystemPluginInfo();
896 static bool SetTypeSystemPluginEnabled(llvm::StringRef name, bool enable);
897
898 static llvm::SmallVector<RegisteredPluginInfo> GetUnwindAssemblyPluginInfo();
899 static bool SetUnwindAssemblyPluginEnabled(llvm::StringRef name, bool enable);
900
901 static void AutoCompletePluginName(llvm::StringRef partial_name,
902 CompletionRequest &request);
903};
904
905} // namespace lldb_private
906
907#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 bool SetBugReporterPluginEnabled(llvm::StringRef name, bool enable)
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 llvm::SmallVector< RegisteredPluginInfo > GetBugReporterPluginInfo()
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 std::unique_ptr< BugReporter > CreateBugReporterInstance(llvm::StringRef name={})
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::unique_ptr< BugReporter >(* BugReporterCreateInstance)()
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