LLDB mainline
lldb_private::lldb_server::LLDBServerAcceleratorPlugin Class Referenceabstract

#include <LLDBServerAcceleratorPlugin.h>

Public Types

using GDBServer = process_gdb_remote::GDBRemoteCommunicationServerLLGS
using Manager = NativeProcessProtocol::Manager

Public Member Functions

 LLDBServerAcceleratorPlugin (GDBServer &native_gdb_server, MainLoop &native_main_loop)
virtual ~LLDBServerAcceleratorPlugin ()
virtual llvm::StringRef GetPluginName ()=0
virtual std::optional< LLDBSettings > GetLLDBSettings ()
 Return the LLDB settings needed to debug this accelerator.
virtual std::optional< AcceleratorActions > GetInitializeActions ()=0
virtual llvm::Expected< AcceleratorBreakpointHitResponse > BreakpointWasHit (AcceleratorBreakpointHitArgs &args)=0
virtual void NativeProcessDidExit (const WaitStatus &exit_status)=0
 Notify the plugin when the native process exits.
AcceleratorActions GetNewAcceleratorAction ()
 Create an AcceleratorActions with an identifier unique within this plugin, so identifiers from different actions don't collide.
virtual std::optional< AcceleratorDynamicLoaderResponse > GetDynamicLoaderLibraryInfos (const AcceleratorDynamicLoaderArgs &args)

Protected Attributes

GDBServer & m_native_gdb_server
MainLoop & m_native_main_loop
std::unique_ptr< Manager > m_process_manager_up
std::unique_ptr< GDBServer > m_accelerator_gdb_server
int64_t m_accelerator_action_identifier = 0

Detailed Description

Definition at line 27 of file LLDBServerAcceleratorPlugin.h.

Member Typedef Documentation

◆ GDBServer

◆ Manager

Constructor & Destructor Documentation

◆ LLDBServerAcceleratorPlugin()

LLDBServerAcceleratorPlugin::LLDBServerAcceleratorPlugin ( GDBServer & native_gdb_server,
MainLoop & native_main_loop )

Definition at line 15 of file LLDBServerAcceleratorPlugin.cpp.

References m_native_gdb_server, and m_native_main_loop.

◆ ~LLDBServerAcceleratorPlugin()

LLDBServerAcceleratorPlugin::~LLDBServerAcceleratorPlugin ( )
virtualdefault

Member Function Documentation

◆ BreakpointWasHit()

virtual llvm::Expected< AcceleratorBreakpointHitResponse > lldb_private::lldb_server::LLDBServerAcceleratorPlugin::BreakpointWasHit ( AcceleratorBreakpointHitArgs & args)
pure virtual

◆ GetDynamicLoaderLibraryInfos()

virtual std::optional< AcceleratorDynamicLoaderResponse > lldb_private::lldb_server::LLDBServerAcceleratorPlugin::GetDynamicLoaderLibraryInfos ( const AcceleratorDynamicLoaderArgs & args)
inlinevirtual

Definition at line 67 of file LLDBServerAcceleratorPlugin.h.

◆ GetInitializeActions()

virtual std::optional< AcceleratorActions > lldb_private::lldb_server::LLDBServerAcceleratorPlugin::GetInitializeActions ( )
pure virtual

◆ GetLLDBSettings()

virtual std::optional< LLDBSettings > lldb_private::lldb_server::LLDBServerAcceleratorPlugin::GetLLDBSettings ( )
inlinevirtual

Return the LLDB settings needed to debug this accelerator.

The settings select the accelerator dynamic loader and identify this server-side plugin. They also determine whether dynamic-loader packets are sent over the accelerator or native connection.

Definition at line 43 of file LLDBServerAcceleratorPlugin.h.

References lldb_private::LLDBSettings::accelerator_plugin_name, lldb_private::LLDBSettings::dyld_plugin_name, GetPluginName(), and lldb_private::LLDBSettings::send_dyld_packet_to_accelerator.

◆ GetNewAcceleratorAction()

AcceleratorActions lldb_private::lldb_server::LLDBServerAcceleratorPlugin::GetNewAcceleratorAction ( )
inline

Create an AcceleratorActions with an identifier unique within this plugin, so identifiers from different actions don't collide.

Definition at line 61 of file LLDBServerAcceleratorPlugin.h.

References GetPluginName(), and m_accelerator_action_identifier.

◆ GetPluginName()

virtual llvm::StringRef lldb_private::lldb_server::LLDBServerAcceleratorPlugin::GetPluginName ( )
pure virtual

◆ NativeProcessDidExit()

virtual void lldb_private::lldb_server::LLDBServerAcceleratorPlugin::NativeProcessDidExit ( const WaitStatus & exit_status)
pure virtual

Notify the plugin when the native process exits.

Member Data Documentation

◆ m_accelerator_action_identifier

int64_t lldb_private::lldb_server::LLDBServerAcceleratorPlugin::m_accelerator_action_identifier = 0
protected

Definition at line 76 of file LLDBServerAcceleratorPlugin.h.

Referenced by GetNewAcceleratorAction().

◆ m_accelerator_gdb_server

std::unique_ptr<GDBServer> lldb_private::lldb_server::LLDBServerAcceleratorPlugin::m_accelerator_gdb_server
protected

Definition at line 75 of file LLDBServerAcceleratorPlugin.h.

◆ m_native_gdb_server

GDBServer& lldb_private::lldb_server::LLDBServerAcceleratorPlugin::m_native_gdb_server
protected

Definition at line 72 of file LLDBServerAcceleratorPlugin.h.

Referenced by LLDBServerAcceleratorPlugin().

◆ m_native_main_loop

MainLoop& lldb_private::lldb_server::LLDBServerAcceleratorPlugin::m_native_main_loop
protected

Definition at line 73 of file LLDBServerAcceleratorPlugin.h.

Referenced by LLDBServerAcceleratorPlugin().

◆ m_process_manager_up

std::unique_ptr<Manager> lldb_private::lldb_server::LLDBServerAcceleratorPlugin::m_process_manager_up
protected

Definition at line 74 of file LLDBServerAcceleratorPlugin.h.


The documentation for this class was generated from the following files: