GDB (xrefs)
Public Member Functions | Public Attributes | Private Member Functions | List of all members
dwarf_expr_context Struct Referenceabstract

#include "dwarf2expr.h"

Inheritance diagram for dwarf_expr_context:
dwarf_evaluate_loc_desc dwarf_expr_executor symbol_needs_eval_context

Public Member Functions

 dwarf_expr_context ()
 
virtual ~dwarf_expr_context ()=default
 
void push_address (CORE_ADDR value, bool in_stack_memory)
 
void eval (const gdb_byte *addr, size_t len)
 
struct valuefetch (int n)
 
CORE_ADDR fetch_address (int n)
 
bool fetch_in_stack_memory (int n)
 
virtual CORE_ADDR read_addr_from_reg (int regnum)=0
 
virtual struct valueget_reg_value (struct type *type, int regnum)=0
 
virtual void read_mem (gdb_byte *buf, CORE_ADDR addr, size_t length)=0
 
virtual void get_frame_base (const gdb_byte **start, size_t *length)=0
 
virtual CORE_ADDR get_frame_cfa ()=0
 
virtual CORE_ADDR get_frame_pc ()
 
virtual CORE_ADDR get_tls_address (CORE_ADDR offset)=0
 
virtual void dwarf_call (cu_offset die_cu_off)=0
 
virtual struct typeget_base_type (cu_offset die_cu_off, int size)
 
virtual void push_dwarf_reg_entry_value (enum call_site_parameter_kind kind, union call_site_parameter_u kind_u, int deref_size)=0
 
virtual CORE_ADDR get_addr_index (unsigned int index)=0
 
virtual CORE_ADDR get_object_address ()=0
 

Public Attributes

std::vector< dwarf_stack_valuestack
 
struct gdbarchgdbarch
 
int addr_size
 
int ref_addr_size
 
CORE_ADDR offset
 
int recursion_depth
 
int max_recursion_depth
 
enum dwarf_value_location location
 
ULONGEST len
 
const gdb_bytedata
 
int initialized
 
std::vector< dwarf_expr_piecepieces
 

Private Member Functions

struct typeaddress_type () const
 
void push (struct value *value, bool in_stack_memory)
 
bool stack_empty_p () const
 
void add_piece (ULONGEST size, ULONGEST offset)
 
void execute_stack_op (const gdb_byte *op_ptr, const gdb_byte *op_end)
 
void pop ()
 

Detailed Description

Definition at line 118 of file dwarf2expr.h.

Constructor & Destructor Documentation

◆ dwarf_expr_context()

dwarf_expr_context::dwarf_expr_context ( )

Definition at line 90 of file dwarf2expr.c.

◆ ~dwarf_expr_context()

virtual dwarf_expr_context::~dwarf_expr_context ( )
virtualdefault

Member Function Documentation

◆ add_piece()

void dwarf_expr_context::add_piece ( ULONGEST  size,
ULONGEST  offset 
)
private

◆ address_type()

struct type * dwarf_expr_context::address_type ( ) const
private

◆ dwarf_call()

virtual void dwarf_expr_context::dwarf_call ( cu_offset  die_cu_off)
pure virtual

◆ eval()

void dwarf_expr_context::eval ( const gdb_byte addr,
size_t  len 
)

◆ execute_stack_op()

void dwarf_expr_context::execute_stack_op ( const gdb_byte op_ptr,
const gdb_byte op_end 
)
private

◆ fetch()

struct value * dwarf_expr_context::fetch ( int  n)

◆ fetch_address()

CORE_ADDR dwarf_expr_context::fetch_address ( int  n)

◆ fetch_in_stack_memory()

bool dwarf_expr_context::fetch_in_stack_memory ( int  n)

Definition at line 234 of file dwarf2expr.c.

References _, error(), and stack.

Referenced by add_piece(), dwarf2_evaluate_loc_desc_full(), and execute_stack_op().

◆ get_addr_index()

virtual CORE_ADDR dwarf_expr_context::get_addr_index ( unsigned int  index)
pure virtual

◆ get_base_type()

virtual struct type* dwarf_expr_context::get_base_type ( cu_offset  die_cu_off,
int  size 
)
inlinevirtual

Reimplemented in dwarf_evaluate_loc_desc.

Definition at line 228 of file dwarf2expr.h.

References builtin_type::builtin_int, and builtin_type().

Referenced by execute_stack_op().

◆ get_frame_base()

virtual void dwarf_expr_context::get_frame_base ( const gdb_byte **  start,
size_t *  length 
)
pure virtual

◆ get_frame_cfa()

virtual CORE_ADDR dwarf_expr_context::get_frame_cfa ( )
pure virtual

◆ get_frame_pc()

virtual CORE_ADDR dwarf_expr_context::get_frame_pc ( )
inlinevirtual

Reimplemented in symbol_needs_eval_context, and dwarf_evaluate_loc_desc.

Definition at line 209 of file dwarf2expr.h.

References _, and error().

Referenced by get_frame_pc_for_per_cu_dwarf_call().

◆ get_object_address()

virtual CORE_ADDR dwarf_expr_context::get_object_address ( )
pure virtual

◆ get_reg_value()

virtual struct value* dwarf_expr_context::get_reg_value ( struct type type,
int  regnum 
)
pure virtual

◆ get_tls_address()

virtual CORE_ADDR dwarf_expr_context::get_tls_address ( CORE_ADDR  offset)
pure virtual

◆ pop()

void dwarf_expr_context::pop ( )
private

Definition at line 123 of file dwarf2expr.c.

References _, error(), and stack.

Referenced by execute_stack_op().

◆ push()

void dwarf_expr_context::push ( struct value value,
bool  in_stack_memory 
)
private

Definition at line 107 of file dwarf2expr.c.

References stack.

Referenced by execute_stack_op(), and push_address().

◆ push_address()

void dwarf_expr_context::push_address ( CORE_ADDR  value,
bool  in_stack_memory 
)

◆ push_dwarf_reg_entry_value()

virtual void dwarf_expr_context::push_dwarf_reg_entry_value ( enum call_site_parameter_kind  kind,
union call_site_parameter_u  kind_u,
int  deref_size 
)
pure virtual

◆ read_addr_from_reg()

virtual CORE_ADDR dwarf_expr_context::read_addr_from_reg ( int  regnum)
pure virtual

◆ read_mem()

virtual void dwarf_expr_context::read_mem ( gdb_byte buf,
CORE_ADDR  addr,
size_t  length 
)
pure virtual

◆ stack_empty_p()

bool dwarf_expr_context::stack_empty_p ( ) const
private

Definition at line 246 of file dwarf2expr.c.

References stack.

Referenced by add_piece().

Member Data Documentation

◆ addr_size

int dwarf_expr_context::addr_size

◆ data

const gdb_byte* dwarf_expr_context::data

◆ gdbarch

struct gdbarch* dwarf_expr_context::gdbarch

◆ initialized

int dwarf_expr_context::initialized

Definition at line 161 of file dwarf2expr.h.

Referenced by dwarf2_evaluate_loc_desc_full(), and execute_stack_op().

◆ len

ULONGEST dwarf_expr_context::len

◆ location

enum dwarf_value_location dwarf_expr_context::location

◆ max_recursion_depth

int dwarf_expr_context::max_recursion_depth

Definition at line 148 of file dwarf2expr.h.

Referenced by execute_stack_op().

◆ offset

CORE_ADDR dwarf_expr_context::offset

◆ pieces

std::vector<dwarf_expr_piece> dwarf_expr_context::pieces

◆ recursion_depth

int dwarf_expr_context::recursion_depth

Definition at line 148 of file dwarf2expr.h.

Referenced by eval(), and execute_stack_op().

◆ ref_addr_size

int dwarf_expr_context::ref_addr_size

◆ stack

std::vector<dwarf_stack_value> dwarf_expr_context::stack

Definition at line 130 of file dwarf2expr.h.

Referenced by execute_stack_op(), fetch(), fetch_in_stack_memory(), pop(), push(), and stack_empty_p().


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