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

An indirect call site. More...

#include <Function.h>

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

Public Member Functions

 IndirectCallEdge (DWARFExpression call_target, AddrType caller_address_type, lldb::addr_t caller_address, bool is_tail_call, CallSiteParameterArray &&parameters)
 Construct a call edge using a DWARFExpression to identify the callee, and a return PC within the calling function to identify a specific call site. More...
 
Call site related structures
FunctionGetCallee (ModuleList &images, ExecutionContext &exe_ctx) override
 Get the callee's definition. More...
 
- Public Member Functions inherited from lldb_private::CallEdge
virtual ~CallEdge ()=default
 
std::pair< AddrType, lldb::addr_tGetCallerAddress (Function &caller, Target &target) const
 Return an address in the caller. More...
 
bool IsTailCall () const
 
llvm::ArrayRef< CallSiteParameterGetCallSiteParameters () const
 Get the call site parameters available at this call edge. More...
 
std::pair< bool, lldb::addr_tGetSortKey () const
 Non-tail-calls go first, sorted by the return address. More...
 
lldb::addr_t GetReturnPCAddress (Function &caller, Target &target) const
 Get the load PC address of the instruction which executes after the call returns. More...
 

Private Attributes

DWARFExpression call_target
 

Additional Inherited Members

- Public Types inherited from lldb_private::CallEdge
enum  AddrType : uint8_t { AddrType::Call, AddrType::AfterCall }
 
- Protected Member Functions inherited from lldb_private::CallEdge
 CallEdge (AddrType caller_address_type, lldb::addr_t caller_address, bool is_tail_call, CallSiteParameterArray &&parameters)
 
lldb::addr_t GetUnresolvedReturnPCAddress () const
 Like GetReturnPCAddress, but returns an unresolved file address. More...
 
- Static Protected Member Functions inherited from lldb_private::CallEdge
static lldb::addr_t GetLoadAddress (lldb::addr_t unresolved_pc, Function &caller, Target &target)
 Helper that finds the load address of unresolved_pc, a file address which refers to an instruction within caller. More...
 

Detailed Description

An indirect call site.

Used to represent call sites where the address of the callee is not fixed, e.g. a call to a C++ virtual function (where the address is loaded out of a vtable), or a call to a function pointer in C.

Definition at line 373 of file Function.h.

Constructor & Destructor Documentation

◆ IndirectCallEdge()

lldb_private::IndirectCallEdge::IndirectCallEdge ( DWARFExpression  call_target,
AddrType  caller_address_type,
lldb::addr_t  caller_address,
bool  is_tail_call,
CallSiteParameterArray &&  parameters 
)
inline

Construct a call edge using a DWARFExpression to identify the callee, and a return PC within the calling function to identify a specific call site.

Definition at line 377 of file Function.h.

Member Function Documentation

◆ GetCallee()

Function * IndirectCallEdge::GetCallee ( ModuleList images,
ExecutionContext exe_ctx 
)
overridevirtual

Member Data Documentation

◆ call_target

DWARFExpression lldb_private::IndirectCallEdge::call_target
private

Definition at line 390 of file Function.h.

Referenced by GetCallee().


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