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/JSON.h"
26
27#include <cstddef>
28#include <cstdint>
29#include <functional>
30#include <vector>
31
32// Match the PluginInitCallback and PluginTermCallback signature. The generated
33// initializer always succeeds.
34#define LLDB_PLUGIN_DEFINE_ADV(ClassName, PluginName) \
35 extern "C" { \
36 bool lldb_initialize_##PluginName() { \
37 ClassName::Initialize(); \
38 return true; \
39 } \
40 void lldb_terminate_##PluginName() { ClassName::Terminate(); } \
41 }
42
43#define LLDB_PLUGIN_DEFINE(PluginName) \
44 LLDB_PLUGIN_DEFINE_ADV(PluginName, PluginName)
45
46// FIXME: Generate me with CMake
47#define LLDB_PLUGIN_DECLARE(PluginName) \
48 extern "C" { \
49 extern bool lldb_initialize_##PluginName(); \
50 extern void lldb_terminate_##PluginName(); \
51 }
52
53#define LLDB_PLUGIN_INITIALIZE(PluginName) lldb_initialize_##PluginName()
54#define LLDB_PLUGIN_TERMINATE(PluginName) lldb_terminate_##PluginName()
55
56namespace lldb_private {
57class CommandInterpreter;
58class Debugger;
59class StringList;
60
62 llvm::StringRef name = "";
63 llvm::StringRef description = "";
64 bool enabled = false;
65};
66
67// Define some data structures to describe known plugin "namespaces".
68// The PluginManager is organized into a series of static functions
69// that operate on different types of plugins. For example SystemRuntime
70// and ObjectFile plugins.
71//
72// The namespace name is used a prefix when matching plugin names. For example,
73// if we have an "macosx" plugin in the "system-runtime" namespace then we will
74// match a plugin name pattern against the "system-runtime.macosx" name.
75//
76// The plugin namespace here is used so we can operate on all the plugins
77// of a given type so it is easy to enable or disable them as a group.
78using GetPluginInfo = std::function<llvm::SmallVector<RegisteredPluginInfo>()>;
79using SetPluginEnabled = std::function<bool(llvm::StringRef, bool)>;
85
90
96
103
109
114
119
125
127public:
128 static void Initialize();
129
130 static void Terminate();
131
132 // Support for enabling and disabling plugins.
133
134 // Return the plugins that can be enabled or disabled by the user.
135 static llvm::ArrayRef<PluginNamespace> GetPluginNamespaces();
136
137 // Generate a json object that describes the plugins that are available.
138 // This is a json representation of the plugin info returned by
139 // GetPluginNamespaces().
140 //
141 // {
142 // <plugin-namespace>: [
143 // {
144 // "enabled": <bool>,
145 // "name": <plugin-name>,
146 // },
147 // ...
148 // ],
149 // ...
150 // }
151 //
152 // If pattern is given it will be used to filter the plugins that are
153 // are returned. The pattern filters the plugin names using the
154 // PluginManager::MatchPluginName() function.
155 static llvm::json::Object GetJSON(llvm::StringRef pattern = "");
156
157 // Return true if the pattern matches the plugin name.
158 //
159 // The pattern matches the name if it is exactly equal to the namespace name
160 // or if it is equal to the qualified name, which is the namespace name
161 // followed by a dot and the plugin name (e.g. "system-runtime.foo").
162 //
163 // An empty pattern matches all plugins.
164 static bool MatchPluginName(llvm::StringRef pattern,
165 const PluginNamespace &plugin_ns,
167
168 // ABI
169 static bool RegisterPlugin(llvm::StringRef name, llvm::StringRef description,
170 ABICreateInstance create_callback);
171
172 static bool UnregisterPlugin(ABICreateInstance create_callback);
173
174 static llvm::SmallVector<ABICreateInstance> GetABICreateCallbacks();
175
176 // Architecture
177 static void RegisterPlugin(llvm::StringRef name, llvm::StringRef description,
178 ArchitectureCreateInstance create_callback);
179
180 static void UnregisterPlugin(ArchitectureCreateInstance create_callback);
181
182 static std::unique_ptr<Architecture>
184
185 // Disassembler
186 static bool RegisterPlugin(llvm::StringRef name, llvm::StringRef description,
187 DisassemblerCreateInstance create_callback);
188
189 static bool UnregisterPlugin(DisassemblerCreateInstance create_callback);
190
191 static llvm::SmallVector<DisassemblerCreateInstance>
193
195 GetDisassemblerCreateCallbackForPluginName(llvm::StringRef name);
196
197 // DynamicLoader
198 static bool
199 RegisterPlugin(llvm::StringRef name, llvm::StringRef description,
200 DynamicLoaderCreateInstance create_callback,
201 DebuggerInitializeCallback debugger_init_callback = nullptr);
202
203 static bool UnregisterPlugin(DynamicLoaderCreateInstance create_callback);
204
205 static llvm::SmallVector<DynamicLoaderCreateInstance>
207
210
211 // JITLoader
212 static bool
213 RegisterPlugin(llvm::StringRef name, llvm::StringRef description,
214 JITLoaderCreateInstance create_callback,
215 DebuggerInitializeCallback debugger_init_callback = nullptr);
216
217 static bool UnregisterPlugin(JITLoaderCreateInstance create_callback);
218
219 static llvm::SmallVector<JITLoaderCreateInstance>
221
222 // EmulateInstruction
223 static bool RegisterPlugin(llvm::StringRef name, llvm::StringRef description,
224 EmulateInstructionCreateInstance create_callback);
225
226 static bool
228
229 static llvm::SmallVector<EmulateInstructionCreateInstance>
231
234
235 // OperatingSystem
236 static bool RegisterPlugin(llvm::StringRef name, llvm::StringRef description,
237 OperatingSystemCreateInstance create_callback,
238 DebuggerInitializeCallback debugger_init_callback);
239
240 static bool UnregisterPlugin(OperatingSystemCreateInstance create_callback);
241
242 static llvm::SmallVector<OperatingSystemCreateInstance>
244
247
248 // Language
249 static bool
250 RegisterPlugin(llvm::StringRef name, llvm::StringRef description,
251 LanguageCreateInstance create_callback,
252 DebuggerInitializeCallback debugger_init_callback = nullptr);
253
254 static bool UnregisterPlugin(LanguageCreateInstance create_callback);
255
256 static llvm::SmallVector<LanguageCreateInstance> GetLanguageCreateCallbacks();
257
258 // LanguageRuntime
259 static bool RegisterPlugin(
260 llvm::StringRef name, llvm::StringRef description,
261 LanguageRuntimeCreateInstance create_callback,
262 LanguageRuntimeGetCommandObject command_callback = nullptr,
263 LanguageRuntimeGetExceptionPrecondition precondition_callback = nullptr);
264
265 static bool UnregisterPlugin(LanguageRuntimeCreateInstance create_callback);
266
267 static llvm::SmallVector<LanguageRuntimeCallbacks>
269
270 // SystemRuntime
271 static bool RegisterPlugin(llvm::StringRef name, llvm::StringRef description,
272 SystemRuntimeCreateInstance create_callback);
273
274 static bool UnregisterPlugin(SystemRuntimeCreateInstance create_callback);
275
276 static llvm::SmallVector<SystemRuntimeCreateInstance>
278
279 // ObjectFile
280 static bool
281 RegisterPlugin(llvm::StringRef name, llvm::StringRef description,
282 ObjectFileCreateInstance create_callback,
283 ObjectFileCreateMemoryInstance create_memory_callback,
284 ObjectFileGetModuleSpecifications get_module_specifications,
285 ObjectFileSaveCore save_core = nullptr,
286 DebuggerInitializeCallback debugger_init_callback = nullptr);
287
288 static bool UnregisterPlugin(ObjectFileCreateInstance create_callback);
289
290 static bool IsRegisteredObjectFilePluginName(llvm::StringRef name);
291
292 static llvm::SmallVector<ObjectFileCallbacks> GetObjectFileCallbacks();
293
296
297 static Status SaveCore(lldb_private::SaveCoreOptions &core_options);
298
299 static llvm::SmallVector<llvm::StringRef> GetSaveCorePluginNames();
300
301 // ObjectContainer
302 static bool RegisterPlugin(
303 llvm::StringRef name, llvm::StringRef description,
304 ObjectContainerCreateInstance create_callback,
305 ObjectFileGetModuleSpecifications get_module_specifications,
306 ObjectContainerCreateMemoryInstance create_memory_callback = nullptr);
307
308 static bool UnregisterPlugin(ObjectContainerCreateInstance create_callback);
309
310 static llvm::SmallVector<ObjectContainerCallbacks>
312
313 // Platform
314 static bool
315 RegisterPlugin(llvm::StringRef name, llvm::StringRef description,
316 PlatformCreateInstance create_callback,
317 DebuggerInitializeCallback debugger_init_callback = nullptr);
318
319 static bool UnregisterPlugin(PlatformCreateInstance create_callback);
320
321 static llvm::SmallVector<PlatformCreateInstance> GetPlatformCreateCallbacks();
322
324 GetPlatformCreateCallbackForPluginName(llvm::StringRef name);
325
326 static llvm::StringRef GetPlatformPluginNameAtIndex(uint32_t idx);
327
328 static llvm::StringRef GetPlatformPluginDescriptionAtIndex(uint32_t idx);
329
330 static void AutoCompletePlatformName(llvm::StringRef partial_name,
331 CompletionRequest &request);
332 // Process
333 static bool
334 RegisterPlugin(llvm::StringRef name, llvm::StringRef description,
335 ProcessCreateInstance create_callback,
336 DebuggerInitializeCallback debugger_init_callback = nullptr);
337
338 static bool UnregisterPlugin(ProcessCreateInstance create_callback);
339
340 static llvm::SmallVector<ProcessCreateInstance> GetProcessCreateCallbacks();
341
343 GetProcessCreateCallbackForPluginName(llvm::StringRef name);
344
345 static llvm::StringRef GetProcessPluginNameAtIndex(uint32_t idx);
346
347 static llvm::StringRef GetProcessPluginDescriptionAtIndex(uint32_t idx);
348
349 static void AutoCompleteProcessName(llvm::StringRef partial_name,
350 CompletionRequest &request);
351
352 // Protocol
353 static bool RegisterPlugin(llvm::StringRef name, llvm::StringRef description,
354 ProtocolServerCreateInstance create_callback);
355
356 static bool UnregisterPlugin(ProtocolServerCreateInstance create_callback);
357
358 static llvm::StringRef GetProtocolServerPluginNameAtIndex(uint32_t idx);
359
361 GetProtocolCreateCallbackForPluginName(llvm::StringRef name);
362
363 // Register Type Provider
364 static bool RegisterPlugin(llvm::StringRef name, llvm::StringRef description,
365 RegisterTypeBuilderCreateInstance create_callback);
366
367 static bool
369
371
372 // ScriptInterpreter
373 static bool
374 RegisterPlugin(llvm::StringRef name, llvm::StringRef description,
375 lldb::ScriptLanguage script_lang,
376 ScriptInterpreterCreateInstance create_callback,
377 ScriptInterpreterGetPath get_path_callback = nullptr);
378
379 static bool UnregisterPlugin(ScriptInterpreterCreateInstance create_callback);
380
381 static llvm::SmallVector<ScriptInterpreterCreateInstance>
383
386 Debugger &debugger);
387
388 static FileSpec
390
391 // SyntheticFrameProvider
392 static bool
393 RegisterPlugin(llvm::StringRef name, llvm::StringRef description,
394 SyntheticFrameProviderCreateInstance create_native_callback,
395 ScriptedFrameProviderCreateInstance create_scripted_callback);
396
397 static bool
399
400 static bool
402
405
406 static llvm::SmallVector<ScriptedFrameProviderCreateInstance>
408
409 // StructuredDataPlugin
410
411 /// Register a StructuredDataPlugin class along with optional
412 /// callbacks for debugger initialization and Process launch info
413 /// filtering and manipulation.
414 ///
415 /// \param[in] name
416 /// The name of the plugin.
417 ///
418 /// \param[in] description
419 /// A description string for the plugin.
420 ///
421 /// \param[in] create_callback
422 /// The callback that will be invoked to create an instance of
423 /// the callback. This may not be nullptr.
424 ///
425 /// \param[in] debugger_init_callback
426 /// An optional callback that will be made when a Debugger
427 /// instance is initialized.
428 ///
429 /// \param[in] filter_callback
430 /// An optional callback that will be invoked before LLDB
431 /// launches a process for debugging. The callback must
432 /// do the following:
433 /// 1. Only do something if the plugin's behavior is enabled.
434 /// 2. Only make changes for processes that are relevant to the
435 /// plugin. The callback gets a pointer to the Target, which
436 /// can be inspected as needed. The ProcessLaunchInfo is
437 /// provided in read-write mode, and may be modified by the
438 /// plugin if, for instance, additional environment variables
439 /// are needed to support the feature when enabled.
440 ///
441 /// \return
442 /// Returns true upon success; otherwise, false.
443 static bool
444 RegisterPlugin(llvm::StringRef name, llvm::StringRef description,
446 DebuggerInitializeCallback debugger_init_callback = nullptr,
447 StructuredDataFilterLaunchInfo filter_callback = nullptr);
448
449 static bool
451
452 static llvm::SmallVector<StructuredDataPluginCallbacks>
454
455 // SymbolFile
456 static bool
457 RegisterPlugin(llvm::StringRef name, llvm::StringRef description,
458 SymbolFileCreateInstance create_callback,
459 DebuggerInitializeCallback debugger_init_callback = nullptr);
460
461 static bool UnregisterPlugin(SymbolFileCreateInstance create_callback);
462
463 static llvm::SmallVector<SymbolFileCreateInstance>
465
466 // SymbolVendor
467 static bool RegisterPlugin(llvm::StringRef name, llvm::StringRef description,
468 SymbolVendorCreateInstance create_callback);
469
470 static bool UnregisterPlugin(SymbolVendorCreateInstance create_callback);
471
472 static llvm::SmallVector<SymbolVendorCreateInstance>
474
475 // SymbolLocator
476 static bool RegisterPlugin(
477 llvm::StringRef name, llvm::StringRef description,
478 SymbolLocatorCreateInstance create_callback,
479 SymbolLocatorLocateExecutableObjectFile locate_executable_object_file =
480 nullptr,
481 SymbolLocatorLocateExecutableSymbolFile locate_executable_symbol_file =
482 nullptr,
483 SymbolLocatorDownloadObjectAndSymbolFile download_object_symbol_file =
484 nullptr,
485 SymbolLocatorFindSymbolFileInBundle find_symbol_file_in_bundle = nullptr,
486 DebuggerInitializeCallback debugger_init_callback = nullptr);
487
488 static bool UnregisterPlugin(SymbolLocatorCreateInstance create_callback);
489
490 static llvm::SmallVector<SymbolLocatorCreateInstance>
492
493 static ModuleSpec LocateExecutableObjectFile(const ModuleSpec &module_spec,
494 StatisticsMap &map);
495
496 static FileSpec
497 LocateExecutableSymbolFile(const ModuleSpec &module_spec,
498 const FileSpecList &default_search_paths,
499 StatisticsMap &map);
500
501 static bool DownloadObjectAndSymbolFile(ModuleSpec &module_spec,
502 Status &error,
503 bool force_lookup = true,
504 bool copy_executable = true);
505
506 static FileSpec FindSymbolFileInBundle(const FileSpec &dsym_bundle_fspec,
507 const UUID *uuid,
508 const ArchSpec *arch);
509
510 // Trace
511 static bool RegisterPlugin(
512 llvm::StringRef name, llvm::StringRef description,
513 TraceCreateInstanceFromBundle create_callback_from_bundle,
514 TraceCreateInstanceForLiveProcess create_callback_for_live_process,
515 llvm::StringRef schema,
516 DebuggerInitializeCallback debugger_init_callback);
517
518 static bool UnregisterPlugin(TraceCreateInstanceFromBundle create_callback);
519
521 GetTraceCreateCallback(llvm::StringRef plugin_name);
522
524 GetTraceCreateCallbackForLiveProcess(llvm::StringRef plugin_name);
525
526 /// Get the JSON schema for a trace bundle description file corresponding to
527 /// the given plugin.
528 ///
529 /// \param[in] plugin_name
530 /// The name of the plugin.
531 ///
532 /// \return
533 /// An empty \a StringRef if no plugin was found with that plugin name,
534 /// otherwise the actual schema is returned.
535 static llvm::StringRef GetTraceSchema(llvm::StringRef plugin_name);
536
537 /// Get the JSON schema for a trace bundle description file corresponding to
538 /// the plugin given by its index.
539 ///
540 /// \param[in] index
541 /// The index of the plugin to get the schema of.
542 ///
543 /// \return
544 /// An empty \a StringRef if the index is greater than or equal to the
545 /// number plugins, otherwise the actual schema is returned.
546 static llvm::StringRef GetTraceSchema(size_t index);
547
548 // TraceExporter
549
550 /// \param[in] create_thread_trace_export_command
551 /// This callback is used to create a CommandObject that will be listed
552 /// under "thread trace export". Can be \b null.
553 static bool RegisterPlugin(
554 llvm::StringRef name, llvm::StringRef description,
555 TraceExporterCreateInstance create_callback,
556 ThreadTraceExportCommandCreator create_thread_trace_export_command);
557
559 GetTraceExporterCreateCallback(llvm::StringRef plugin_name);
560
561 static bool UnregisterPlugin(TraceExporterCreateInstance create_callback);
562
563 static llvm::SmallVector<TraceExporterCallbacks> GetTraceExporterCallbacks();
564
565 // UnwindAssembly
566 static bool RegisterPlugin(llvm::StringRef name, llvm::StringRef description,
567 UnwindAssemblyCreateInstance create_callback);
568
569 static bool UnregisterPlugin(UnwindAssemblyCreateInstance create_callback);
570
571 static llvm::SmallVector<UnwindAssemblyCreateInstance>
573
574 // MemoryHistory
575 static bool RegisterPlugin(llvm::StringRef name, llvm::StringRef description,
576 MemoryHistoryCreateInstance create_callback);
577
578 static bool UnregisterPlugin(MemoryHistoryCreateInstance create_callback);
579
580 static llvm::SmallVector<MemoryHistoryCreateInstance>
582
583 // InstrumentationRuntime
584 static bool
585 RegisterPlugin(llvm::StringRef name, llvm::StringRef description,
587 InstrumentationRuntimeGetType get_type_callback);
588
589 static bool
591
592 static llvm::SmallVector<InstrumentationRuntimeCallbacks>
594
595 // TypeSystem
596 static bool RegisterPlugin(llvm::StringRef name, llvm::StringRef description,
597 TypeSystemCreateInstance create_callback,
598 LanguageSet supported_languages_for_types,
599 LanguageSet supported_languages_for_expressions);
600
601 static bool UnregisterPlugin(TypeSystemCreateInstance create_callback);
602
603 static llvm::SmallVector<TypeSystemCreateInstance>
605
607
609
610 // Scripted Interface
611 static bool RegisterPlugin(llvm::StringRef name, llvm::StringRef description,
612 ScriptedInterfaceCreateInstance create_callback,
613 lldb::ScriptLanguage language,
615
616 static bool UnregisterPlugin(ScriptedInterfaceCreateInstance create_callback);
617
618 static uint32_t GetNumScriptedInterfaces();
619
620 static llvm::StringRef GetScriptedInterfaceNameAtIndex(uint32_t idx);
621
622 static llvm::StringRef GetScriptedInterfaceDescriptionAtIndex(uint32_t idx);
623
625
628
629 // REPL
630 static bool RegisterPlugin(llvm::StringRef name, llvm::StringRef description,
631 REPLCreateInstance create_callback,
632 LanguageSet supported_languages);
633
634 static bool UnregisterPlugin(REPLCreateInstance create_callback);
635
636 static llvm::SmallVector<REPLCallbacks> GetREPLCallbacks();
637
639
640 // Higlhighter
641 static bool RegisterPlugin(llvm::StringRef name, llvm::StringRef description,
642 HighlighterCreateInstance create_callback);
643
644 static bool UnregisterPlugin(HighlighterCreateInstance create_callback);
645
646 static llvm::SmallVector<HighlighterCreateInstance>
648
649 // Some plug-ins might register a DebuggerInitializeCallback callback when
650 // registering the plug-in. After a new Debugger instance is created, this
651 // DebuggerInitialize function will get called. This allows plug-ins to
652 // install Properties and do any other initialization that requires a
653 // debugger instance.
654 static void DebuggerInitialize(Debugger &debugger);
655
658 llvm::StringRef setting_name);
659
661 Debugger &debugger, const lldb::OptionValuePropertiesSP &properties_sp,
662 llvm::StringRef description, bool is_global_property);
663
665 GetSettingForPlatformPlugin(Debugger &debugger, llvm::StringRef setting_name);
666
668 Debugger &debugger, const lldb::OptionValuePropertiesSP &properties_sp,
669 llvm::StringRef description, bool is_global_property);
670
672 GetSettingForProcessPlugin(Debugger &debugger, llvm::StringRef setting_name);
673
675 Debugger &debugger, const lldb::OptionValuePropertiesSP &properties_sp,
676 llvm::StringRef description, bool is_global_property);
677
680 llvm::StringRef setting_name);
681
683 Debugger &debugger, const lldb::OptionValuePropertiesSP &properties_sp,
684 llvm::StringRef description, bool is_global_property);
685
686 static bool CreateSettingForTracePlugin(
687 Debugger &debugger, const lldb::OptionValuePropertiesSP &properties_sp,
688 llvm::StringRef description, bool is_global_property);
689
692 llvm::StringRef setting_name);
693
695 Debugger &debugger, const lldb::OptionValuePropertiesSP &properties_sp,
696 llvm::StringRef description, bool is_global_property);
697
700 llvm::StringRef setting_name);
701
703 Debugger &debugger, const lldb::OptionValuePropertiesSP &properties_sp,
704 llvm::StringRef description, bool is_global_property);
705
708 llvm::StringRef setting_name);
709
711 Debugger &debugger, const lldb::OptionValuePropertiesSP &properties_sp,
712 llvm::StringRef description, bool is_global_property);
713
716 llvm::StringRef setting_name);
717
719 Debugger &debugger, const lldb::OptionValuePropertiesSP &properties_sp,
720 llvm::StringRef description, bool is_global_property);
721
724 llvm::StringRef setting_name);
725
727 Debugger &debugger, const lldb::OptionValuePropertiesSP &properties_sp,
728 llvm::StringRef description, bool is_global_property);
729
732 llvm::StringRef setting_name);
733
735 Debugger &debugger, const lldb::OptionValuePropertiesSP &properties_sp,
736 llvm::StringRef description, bool is_global_property);
737
738 //
739 // Plugin Info+Enable Declarations
740 //
741 static llvm::SmallVector<RegisteredPluginInfo> GetABIPluginInfo();
742 static bool SetABIPluginEnabled(llvm::StringRef name, bool enable);
743
744 static llvm::SmallVector<RegisteredPluginInfo> GetArchitecturePluginInfo();
745 static bool SetArchitecturePluginEnabled(llvm::StringRef name, bool enable);
746
747 static llvm::SmallVector<RegisteredPluginInfo> GetDisassemblerPluginInfo();
748 static bool SetDisassemblerPluginEnabled(llvm::StringRef name, bool enable);
749
750 static llvm::SmallVector<RegisteredPluginInfo> GetDynamicLoaderPluginInfo();
751 static bool SetDynamicLoaderPluginEnabled(llvm::StringRef name, bool enable);
752
753 static llvm::SmallVector<RegisteredPluginInfo>
755 static bool SetEmulateInstructionPluginEnabled(llvm::StringRef name,
756 bool enable);
757
758 static llvm::SmallVector<RegisteredPluginInfo>
760 static bool SetInstrumentationRuntimePluginEnabled(llvm::StringRef name,
761 bool enable);
762
763 static llvm::SmallVector<RegisteredPluginInfo> GetJITLoaderPluginInfo();
764 static bool SetJITLoaderPluginEnabled(llvm::StringRef name, bool enable);
765
766 static llvm::SmallVector<RegisteredPluginInfo> GetLanguagePluginInfo();
767 static bool SetLanguagePluginEnabled(llvm::StringRef name, bool enable);
768
769 static llvm::SmallVector<RegisteredPluginInfo> GetLanguageRuntimePluginInfo();
770 static bool SetLanguageRuntimePluginEnabled(llvm::StringRef name,
771 bool enable);
772
773 static llvm::SmallVector<RegisteredPluginInfo> GetMemoryHistoryPluginInfo();
774 static bool SetMemoryHistoryPluginEnabled(llvm::StringRef name, bool enable);
775
776 static llvm::SmallVector<RegisteredPluginInfo> GetObjectContainerPluginInfo();
777 static bool SetObjectContainerPluginEnabled(llvm::StringRef name,
778 bool enable);
779
780 static llvm::SmallVector<RegisteredPluginInfo> GetObjectFilePluginInfo();
781 static bool SetObjectFilePluginEnabled(llvm::StringRef name, bool enable);
782
783 static llvm::SmallVector<RegisteredPluginInfo> GetOperatingSystemPluginInfo();
784 static bool SetOperatingSystemPluginEnabled(llvm::StringRef name,
785 bool enable);
786
787 static llvm::SmallVector<RegisteredPluginInfo> GetPlatformPluginInfo();
788 static bool SetPlatformPluginEnabled(llvm::StringRef name, bool enable);
789
790 static llvm::SmallVector<RegisteredPluginInfo> GetProcessPluginInfo();
791 static bool SetProcessPluginEnabled(llvm::StringRef name, bool enable);
792
793 static llvm::SmallVector<RegisteredPluginInfo> GetREPLPluginInfo();
794 static bool SetREPLPluginEnabled(llvm::StringRef name, bool enable);
795
796 static llvm::SmallVector<RegisteredPluginInfo>
798 static bool SetRegisterTypeBuilderPluginEnabled(llvm::StringRef name,
799 bool enable);
800
801 static llvm::SmallVector<RegisteredPluginInfo>
803 static bool SetScriptInterpreterPluginEnabled(llvm::StringRef name,
804 bool enable);
805
806 static llvm::SmallVector<RegisteredPluginInfo>
808 static bool SetScriptedInterfacePluginEnabled(llvm::StringRef name,
809 bool enable);
810
811 static llvm::SmallVector<RegisteredPluginInfo> GetStructuredDataPluginInfo();
812 static bool SetStructuredDataPluginEnabled(llvm::StringRef name, bool enable);
813
814 static llvm::SmallVector<RegisteredPluginInfo> GetSymbolFilePluginInfo();
815 static bool SetSymbolFilePluginEnabled(llvm::StringRef name, bool enable);
816
817 static llvm::SmallVector<RegisteredPluginInfo> GetSymbolLocatorPluginInfo();
818 static bool SetSymbolLocatorPluginEnabled(llvm::StringRef name, bool enable);
819
820 static llvm::SmallVector<RegisteredPluginInfo> GetSymbolVendorPluginInfo();
821 static bool SetSymbolVendorPluginEnabled(llvm::StringRef name, bool enable);
822
823 static llvm::SmallVector<RegisteredPluginInfo> GetSystemRuntimePluginInfo();
824 static bool SetSystemRuntimePluginEnabled(llvm::StringRef name, bool enable);
825
826 static llvm::SmallVector<RegisteredPluginInfo> GetTracePluginInfo();
827 static bool SetTracePluginEnabled(llvm::StringRef name, bool enable);
828
829 static llvm::SmallVector<RegisteredPluginInfo> GetTraceExporterPluginInfo();
830 static bool SetTraceExporterPluginEnabled(llvm::StringRef name, bool enable);
831
832 static llvm::SmallVector<RegisteredPluginInfo> GetTypeSystemPluginInfo();
833 static bool SetTypeSystemPluginEnabled(llvm::StringRef name, bool enable);
834
835 static llvm::SmallVector<RegisteredPluginInfo> GetUnwindAssemblyPluginInfo();
836 static bool SetUnwindAssemblyPluginEnabled(llvm::StringRef name, bool enable);
837
838 static void AutoCompletePluginName(llvm::StringRef partial_name,
839 CompletionRequest &request);
840};
841
842} // namespace lldb_private
843
844#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:87
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 bool SetTraceExporterPluginEnabled(llvm::StringRef name, bool enable)
static llvm::SmallVector< RegisteredPluginInfo > GetArchitecturePluginInfo()
static LanguageSet GetAllTypeSystemSupportedLanguagesForExpressions()
static bool SetInstrumentationRuntimePluginEnabled(llvm::StringRef name, bool enable)
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 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::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 llvm::SmallVector< InstrumentationRuntimeCallbacks > GetInstrumentationRuntimeCallbacks()
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()
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)
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)
size_t(* ObjectFileGetModuleSpecifications)(const FileSpec &file, lldb::DataExtractorSP &extractor_sp, lldb::offset_t data_offset, lldb::offset_t file_offset, lldb::offset_t length, ModuleSpecList &module_specs)
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)
std::function< bool(llvm::StringRef, bool)> SetPluginEnabled
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)
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
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