LLDB mainline
Public Member Functions | Static Public Member Functions | Protected Attributes | List of all members
lldb_private::JITLoader Class Referenceabstract

A plug-in interface definition class for JIT loaders. More...

#include "lldb/Target/JITLoader.h"

Inheritance diagram for lldb_private::JITLoader:
Inheritance graph
[legend]

Public Member Functions

 JITLoader (Process *process)
 Construct with a process.
 
 ~JITLoader () override
 
virtual void DidAttach ()=0
 Called after attaching a process.
 
virtual void DidLaunch ()=0
 Called after launching a process.
 
virtual void ModulesDidLoad (lldb_private::ModuleList &module_list)=0
 Called after a new shared object has been loaded so that it can be probed for JIT entry point hooks.
 
- Public Member Functions inherited from lldb_private::PluginInterface
 PluginInterface ()=default
 
virtual ~PluginInterface ()=default
 
virtual llvm::StringRef GetPluginName ()=0
 
 PluginInterface (const PluginInterface &)=delete
 
PluginInterfaceoperator= (const PluginInterface &)=delete
 

Static Public Member Functions

static void LoadPlugins (Process *process, lldb_private::JITLoaderList &list)
 Find a JIT loader plugin for a given process.
 

Protected Attributes

Processm_process
 

Detailed Description

A plug-in interface definition class for JIT loaders.

Plugins of this kind listen for code generated at runtime in the target. They are very similar to dynamic loader, with the difference that they do not have information about the target's dyld and that there may be multiple JITLoader plugins per process, while there is at most one DynamicLoader.

Definition at line 27 of file JITLoader.h.

Constructor & Destructor Documentation

◆ JITLoader()

JITLoader::JITLoader ( Process process)

Construct with a process.

Definition at line 30 of file JITLoader.cpp.

◆ ~JITLoader()

JITLoader::~JITLoader ( )
overridedefault

Member Function Documentation

◆ DidAttach()

virtual void lldb_private::JITLoader::DidAttach ( )
pure virtual

Called after attaching a process.

Allow JITLoader plug-ins to execute some code after attaching to a process.

Implemented in JITLoaderGDB.

◆ DidLaunch()

virtual void lldb_private::JITLoader::DidLaunch ( )
pure virtual

Called after launching a process.

Allow JITLoader plug-ins to execute some code after the process has stopped for the first time on launch.

Implemented in JITLoaderGDB.

◆ LoadPlugins()

void JITLoader::LoadPlugins ( Process process,
lldb_private::JITLoaderList list 
)
static

Find a JIT loader plugin for a given process.

Scans the installed DynamicLoader plug-ins and tries to find all applicable instances for the current process.

Parameters
[in]processThe process for which to try and locate a JIT loader plug-in instance.

Definition at line 18 of file JITLoader.cpp.

References lldb_private::JITLoaderList::Append(), and lldb_private::PluginManager::GetJITLoaderCreateCallbackAtIndex().

Referenced by lldb_private::Process::GetJITLoaders().

◆ ModulesDidLoad()

virtual void lldb_private::JITLoader::ModulesDidLoad ( lldb_private::ModuleList module_list)
pure virtual

Called after a new shared object has been loaded so that it can be probed for JIT entry point hooks.

Implemented in JITLoaderGDB.

Member Data Documentation

◆ m_process

Process* lldb_private::JITLoader::m_process
protected

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