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

#include <ABI.h>

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

Classes

struct  CallArgument
 

Public Member Functions

 ~ABI () override
 
virtual size_t GetRedZoneSize () const =0
 
virtual bool PrepareTrivialCall (lldb_private::Thread &thread, lldb::addr_t sp, lldb::addr_t functionAddress, lldb::addr_t returnAddress, llvm::ArrayRef< lldb::addr_t > args) const =0
 
virtual bool PrepareTrivialCall (lldb_private::Thread &thread, lldb::addr_t sp, lldb::addr_t functionAddress, lldb::addr_t returnAddress, llvm::Type &prototype, llvm::ArrayRef< CallArgument > args) const
 
virtual bool GetArgumentValues (Thread &thread, ValueList &values) const =0
 
lldb::ValueObjectSP GetReturnValueObject (Thread &thread, CompilerType &type, bool persistent=true) const
 
lldb::ValueObjectSP GetReturnValueObject (Thread &thread, llvm::Type &type, bool persistent=true) const
 
virtual Status SetReturnValueObject (lldb::StackFrameSP &frame_sp, lldb::ValueObjectSP &new_value)=0
 
virtual bool CreateFunctionEntryUnwindPlan (UnwindPlan &unwind_plan)=0
 
virtual bool CreateDefaultUnwindPlan (UnwindPlan &unwind_plan)=0
 
virtual bool RegisterIsVolatile (const RegisterInfo *reg_info)=0
 
virtual bool GetFallbackRegisterLocation (const RegisterInfo *reg_info, UnwindPlan::Row::RegisterLocation &unwind_regloc)
 
virtual bool CallFrameAddressIsValid (lldb::addr_t cfa)=0
 
virtual bool CodeAddressIsValid (lldb::addr_t pc)=0
 
virtual lldb::addr_t FixCodeAddress (lldb::addr_t pc)
 
virtual const RegisterInfo * GetRegisterInfoArray (uint32_t &count)=0
 
bool GetRegisterInfoByName (ConstString name, RegisterInfo &info)
 
bool GetRegisterInfoByKind (lldb::RegisterKind reg_kind, uint32_t reg_num, RegisterInfo &info)
 
virtual bool GetPointerReturnRegister (const char *&name)
 
- Public Member Functions inherited from lldb_private::PluginInterface
virtual ~PluginInterface ()
 
virtual ConstString GetPluginName ()=0
 
virtual uint32_t GetPluginVersion ()=0
 

Static Public Member Functions

static lldb::ABISP FindPlugin (lldb::ProcessSP process_sp, const ArchSpec &arch)
 

Protected Member Functions

virtual lldb::ValueObjectSP GetReturnValueObjectImpl (Thread &thread, CompilerType &ast_type) const =0
 
virtual lldb::ValueObjectSP GetReturnValueObjectImpl (Thread &thread, llvm::Type &ir_type) const
 
lldb::ProcessSP GetProcessSP () const
 Request to get a Process shared pointer. More...
 
 ABI (lldb::ProcessSP process_sp)
 

Protected Attributes

lldb::ProcessWP m_process_wp
 

Detailed Description

Definition at line 26 of file ABI.h.

Constructor & Destructor Documentation

◆ ~ABI()

ABI::~ABI ( )
overridedefault

◆ ABI()

lldb_private::ABI::ABI ( lldb::ProcessSP  process_sp)
inlineprotected

Definition at line 140 of file ABI.h.

Member Function Documentation

◆ CallFrameAddressIsValid()

virtual bool lldb_private::ABI::CallFrameAddressIsValid ( lldb::addr_t  cfa)
pure virtual

◆ CodeAddressIsValid()

virtual bool lldb_private::ABI::CodeAddressIsValid ( lldb::addr_t  pc)
pure virtual

◆ CreateDefaultUnwindPlan()

virtual bool lldb_private::ABI::CreateDefaultUnwindPlan ( UnwindPlan unwind_plan)
pure virtual

◆ CreateFunctionEntryUnwindPlan()

virtual bool lldb_private::ABI::CreateFunctionEntryUnwindPlan ( UnwindPlan unwind_plan)
pure virtual

◆ FindPlugin()

ABISP ABI::FindPlugin ( lldb::ProcessSP  process_sp,
const ArchSpec arch 
)
static

◆ FixCodeAddress()

virtual lldb::addr_t lldb_private::ABI::FixCodeAddress ( lldb::addr_t  pc)
inlinevirtual

◆ GetArgumentValues()

virtual bool lldb_private::ABI::GetArgumentValues ( Thread thread,
ValueList values 
) const
pure virtual

◆ GetFallbackRegisterLocation()

bool ABI::GetFallbackRegisterLocation ( const RegisterInfo *  reg_info,
UnwindPlan::Row::RegisterLocation unwind_regloc 
)
virtual

◆ GetPointerReturnRegister()

virtual bool lldb_private::ABI::GetPointerReturnRegister ( const char *&  name)
inlinevirtual

Reimplemented in ABISysV_x86_64, and ABISysV_arm64.

Definition at line 134 of file ABI.h.

◆ GetProcessSP()

lldb::ProcessSP lldb_private::ABI::GetProcessSP ( ) const
inlineprotected

Request to get a Process shared pointer.

This ABI object may not have been created with a Process object, or the Process object may no longer be alive. Be sure to handle the case where the shared pointer returned does not have an object inside it.

Definition at line 95 of file ABI.h.

References pc.

◆ GetRedZoneSize()

virtual size_t lldb_private::ABI::GetRedZoneSize ( ) const
pure virtual

◆ GetRegisterInfoArray()

virtual const RegisterInfo* lldb_private::ABI::GetRegisterInfoArray ( uint32_t count)
pure virtual

◆ GetRegisterInfoByKind()

bool ABI::GetRegisterInfoByKind ( lldb::RegisterKind  reg_kind,
uint32_t  reg_num,
RegisterInfo &  info 
)

Definition at line 64 of file ABI.cpp.

References lldb::kNumRegisterKinds.

Referenced by lldb_private::DWARFExpression::DumpLocation().

◆ GetRegisterInfoByName()

bool ABI::GetRegisterInfoByName ( ConstString  name,
RegisterInfo &  info 
)

Definition at line 42 of file ABI.cpp.

References lldb_private::ConstString::GetCString().

◆ GetReturnValueObject() [1/2]

ValueObjectSP ABI::GetReturnValueObject ( Thread thread,
CompilerType type,
bool  persistent = true 
) const

◆ GetReturnValueObject() [2/2]

ValueObjectSP ABI::GetReturnValueObject ( Thread thread,
llvm::Type &  type,
bool  persistent = true 
) const

Definition at line 163 of file ABI.cpp.

◆ GetReturnValueObjectImpl() [1/2]

virtual lldb::ValueObjectSP lldb_private::ABI::GetReturnValueObjectImpl ( Thread thread,
CompilerType ast_type 
) const
protectedpure virtual

◆ GetReturnValueObjectImpl() [2/2]

lldb::ValueObjectSP ABI::GetReturnValueObjectImpl ( Thread thread,
llvm::Type &  ir_type 
) const
protectedvirtual

Reimplemented in ABISysV_hexagon.

Definition at line 174 of file ABI.cpp.

References sp.

◆ PrepareTrivialCall() [1/2]

virtual bool lldb_private::ABI::PrepareTrivialCall ( lldb_private::Thread thread,
lldb::addr_t  sp,
lldb::addr_t  functionAddress,
lldb::addr_t  returnAddress,
llvm::ArrayRef< lldb::addr_t args 
) const
pure virtual

◆ PrepareTrivialCall() [2/2]

virtual bool lldb_private::ABI::PrepareTrivialCall ( lldb_private::Thread thread,
lldb::addr_t  sp,
lldb::addr_t  functionAddress,
lldb::addr_t  returnAddress,
llvm::Type &  prototype,
llvm::ArrayRef< CallArgument args 
) const
virtual

◆ RegisterIsVolatile()

virtual bool lldb_private::ABI::RegisterIsVolatile ( const RegisterInfo *  reg_info)
pure virtual

◆ SetReturnValueObject()

virtual Status lldb_private::ABI::SetReturnValueObject ( lldb::StackFrameSP &  frame_sp,
lldb::ValueObjectSP &  new_value 
)
pure virtual

Member Data Documentation

◆ m_process_wp

lldb::ProcessWP lldb_private::ABI::m_process_wp
protected

Definition at line 145 of file ABI.h.


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