LLDB mainline
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:
[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.

References m_process.

Referenced by JITLoaderGDB::JITLoaderGDB().

◆ ~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


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