9#ifndef LLDB_TARGET_STRUCTUREDDATAPLUGIN_H
10#define LLDB_TARGET_STRUCTUREDDATAPLUGIN_H
17class CommandObjectMultiword;
42 public std::enable_shared_from_this<StructuredDataPlugin> {
127 virtual bool GetEnabled(llvm::StringRef type_name)
const;
A class to manage flag bits.
A collection class for Module objects.
A plug-in interface definition class for debugging a process.
A stream class that can stream formatted output to a file.
Plugin that supports process-related structured data sent asynchronously from the debug monitor (e....
~StructuredDataPlugin() override
const StructuredDataPlugin & operator=(const StructuredDataPlugin &)=delete
virtual bool GetEnabled(llvm::StringRef type_name) const
Returns whether the plugin's features are enabled.
virtual void ModulesDidLoad(Process &process, ModuleList &module_list)
Allow the plugin to do work related to modules that loaded in the the corresponding process.
lldb::ProcessSP GetProcess() const
StructuredDataPlugin(const StructuredDataPlugin &)=delete
virtual void HandleArrivalOfStructuredData(Process &process, llvm::StringRef type_name, const StructuredData::ObjectSP &object_sp)=0
Handle the arrival of asynchronous structured data from the process.
virtual bool SupportsStructuredDataType(llvm::StringRef type_name)=0
Return whether this plugin supports the given StructuredData feature.
lldb::ProcessWP m_process_wp
virtual Status GetDescription(const StructuredData::ObjectSP &object_sp, lldb_private::Stream &stream)=0
Get a human-readable description of the contents of the data.
static void InitializeBasePluginForDebugger(Debugger &debugger)
Derived classes must call this before attempting to hook up commands to the 'plugin structured-data' ...
std::shared_ptr< Object > ObjectSP
A class that represents a running process on the host machine.
std::shared_ptr< lldb_private::Process > ProcessSP
std::weak_ptr< lldb_private::Process > ProcessWP