LLDB  mainline
Public Member Functions | Static Public Member Functions | Private Member Functions | Static Private Member Functions | Private Attributes | List of all members
lldb_private::ArchitectureAArch64 Class Reference

#include <ArchitectureAArch64.h>

Inheritance diagram for lldb_private::ArchitectureAArch64:
Inheritance graph
[legend]
Collaboration diagram for lldb_private::ArchitectureAArch64:
Collaboration graph
[legend]

Public Member Functions

ConstString GetPluginName () override
 
void OverrideStopInfo (Thread &thread) const override
 This is currently intended to handle cases where a program stops at an instruction that won't get executed and it allows the stop reason, like "breakpoint hit", to be replaced with a different stop reason like "no stop reason". More...
 
const MemoryTagManagerGetMemoryTagManager () const override
 
- Public Member Functions inherited from lldb_private::Architecture
virtual size_t GetBytesToSkip (Symbol &func, const Address &curr_addr) const
 This method is used to get the number of bytes that should be skipped, from function start address, to reach the first instruction after the prologue. More...
 
virtual void AdjustBreakpointAddress (const Symbol &func, Address &addr) const
 Adjust function breakpoint address, if needed. More...
 
virtual lldb::addr_t GetCallableLoadAddress (lldb::addr_t addr, AddressClass addr_class=AddressClass::eInvalid) const
 Get load_addr as a callable code load address for this target. More...
 
virtual lldb::addr_t GetOpcodeLoadAddress (lldb::addr_t addr, AddressClass addr_class=AddressClass::eInvalid) const
 Get load_addr as an opcode for this target. More...
 
virtual lldb::addr_t GetBreakableLoadAddress (lldb::addr_t addr, Target &target) const
 
- Public Member Functions inherited from lldb_private::PluginInterface
 PluginInterface ()=default
 
virtual ~PluginInterface ()=default
 
 PluginInterface (const PluginInterface &)=delete
 
PluginInterfaceoperator= (const PluginInterface &)=delete
 

Static Public Member Functions

static ConstString GetPluginNameStatic ()
 
static void Initialize ()
 
static void Terminate ()
 

Private Member Functions

 ArchitectureAArch64 ()=default
 

Static Private Member Functions

static std::unique_ptr< ArchitectureCreate (const ArchSpec &arch)
 

Private Attributes

MemoryTagManagerAArch64MTE m_memory_tag_manager
 

Detailed Description

Definition at line 17 of file ArchitectureAArch64.h.

Constructor & Destructor Documentation

◆ ArchitectureAArch64()

lldb_private::ArchitectureAArch64::ArchitectureAArch64 ( )
privatedefault

Member Function Documentation

◆ Create()

std::unique_ptr< Architecture > ArchitectureAArch64::Create ( const ArchSpec arch)
staticprivate

Definition at line 33 of file ArchitectureAArch64.cpp.

References lldb_private::ArchSpec::GetMachine().

Referenced by Initialize(), and Terminate().

◆ GetMemoryTagManager()

const MemoryTagManager* lldb_private::ArchitectureAArch64::GetMemoryTagManager ( ) const
inlineoverridevirtual

Reimplemented from lldb_private::Architecture.

Definition at line 27 of file ArchitectureAArch64.h.

References m_memory_tag_manager.

◆ GetPluginName()

ConstString ArchitectureAArch64::GetPluginName ( )
overridevirtual

Implements lldb_private::PluginInterface.

Definition at line 42 of file ArchitectureAArch64.cpp.

◆ GetPluginNameStatic()

ConstString ArchitectureAArch64::GetPluginNameStatic ( )
static

Definition at line 18 of file ArchitectureAArch64.cpp.

◆ Initialize()

void ArchitectureAArch64::Initialize ( )
static

◆ OverrideStopInfo()

void lldb_private::ArchitectureAArch64::OverrideStopInfo ( Thread thread) const
inlineoverridevirtual

This is currently intended to handle cases where a program stops at an instruction that won't get executed and it allows the stop reason, like "breakpoint hit", to be replaced with a different stop reason like "no stop reason".

This is specifically used for ARM in Thumb code when we stop in an IT instruction (if/then/else) where the instruction won't get executed and therefore it wouldn't be correct to show the program stopped at the current PC. The code is generic and applies to all ARM CPUs.

Implements lldb_private::Architecture.

Definition at line 25 of file ArchitectureAArch64.h.

◆ Terminate()

void ArchitectureAArch64::Terminate ( )
static

Member Data Documentation

◆ m_memory_tag_manager

MemoryTagManagerAArch64MTE lldb_private::ArchitectureAArch64::m_memory_tag_manager
private

Definition at line 34 of file ArchitectureAArch64.h.

Referenced by GetMemoryTagManager().


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