|
GDB (xrefs)
|
#include "dwarf2expr.h"
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 value * | fetch (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 value * | get_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 type * | get_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_value > | stack |
| struct gdbarch * | gdbarch |
| 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_byte * | data |
| int | initialized |
| std::vector< dwarf_expr_piece > | pieces |
Private Member Functions | |
| struct type * | address_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 () |
Definition at line 118 of file dwarf2expr.h.
| dwarf_expr_context::dwarf_expr_context | ( | ) |
Definition at line 90 of file dwarf2expr.c.
|
virtualdefault |
Definition at line 253 of file dwarf2expr.c.
References data, DWARF_VALUE_IMPLICIT_POINTER, DWARF_VALUE_LITERAL, DWARF_VALUE_MEMORY, DWARF_VALUE_OPTIMIZED_OUT, DWARF_VALUE_REGISTER, fetch(), fetch_address(), fetch_in_stack_memory(), len, dwarf_expr_piece::literal, location, dwarf_expr_piece::location, dwarf_expr_piece::mem, dwarf_expr_piece::offset, offset, pieces, dwarf_expr_piece::ptr, dwarf_expr_piece::regno, dwarf_expr_piece::size, size, stack_empty_p(), dwarf_expr_piece::v, dwarf_expr_piece::value, and value_as_long().
Referenced by execute_stack_op().
|
private |
Definition at line 62 of file dwarf2expr.c.
References _, addr_size, arch_integer_type(), dwarf_gdbarch_types::dw_types, dwarf_arch_cookie, and error().
Referenced by execute_stack_op(), and push_address().
|
pure virtual |
Implemented in symbol_needs_eval_context, dwarf_evaluate_loc_desc, and dwarf_expr_executor.
Referenced by execute_stack_op().
| void dwarf_expr_context::eval | ( | const gdb_byte * | addr, |
| size_t | len | ||
| ) |
Definition at line 297 of file dwarf2expr.c.
References execute_stack_op(), gdb_assert, len, and recursion_depth.
Referenced by dwarf2_evaluate_loc_desc_full(), dwarf2_loc_desc_get_symbol_read_needs(), dwarf2_locexpr_baton_eval(), execute_stack_op(), execute_stack_op(), per_cu_dwarf_call(), and dwarf_evaluate_loc_desc::push_dwarf_reg_entry_value().
|
private |
Definition at line 546 of file dwarf2expr.c.
References _, add_piece(), addr_size, address_type(), base_types_equal_p(), CALL_SITE_PARAMETER_DWARF_REG, CALL_SITE_PARAMETER_PARAM_OFFSET, data, dwarf_block_to_dwarf_reg(), dwarf_block_to_dwarf_reg_deref(), dwarf_call(), dwarf_expr_require_composition(), call_site_parameter_u::dwarf_reg, dwarf_require_integral(), DWARF_VALUE_IMPLICIT_POINTER, DWARF_VALUE_LITERAL, DWARF_VALUE_MEMORY, DWARF_VALUE_OPTIMIZED_OUT, DWARF_VALUE_REGISTER, DWARF_VALUE_STACK, error(), eval(), extract_signed_integer(), extract_unsigned_integer(), fetch(), fetch_address(), fetch_in_stack_memory(), gdb_assert, gdbarch_byte_order(), get_addr_index(), get_base_type(), get_frame_base(), get_frame_cfa(), get_object_address(), get_reg_value(), get_signed_type(), get_tls_address(), get_unsigned_type(), initialized, internal_error(), len, location, max_recursion_depth, not_lval, offset, call_site_parameter_u::param_cu_off, pop(), push(), push_dwarf_reg_entry_value(), QUIT, read_addr_from_reg(), read_mem(), recursion_depth, ref_addr_size, value::reg, safe_read_sleb128(), safe_read_uleb128(), size, stack, store_unsigned_integer(), stype, to_underlying(), type, TYPE_LENGTH, TYPE_UNSIGNED, value_as_long(), value_binop(), value_cast(), value_complement(), value_contents_all(), value_equal(), value_from_contents(), value_from_contents_and_address(), value_from_ulongest(), value_less(), value_neg(), value_type(), and value_zero().
Referenced by eval().
| struct value * dwarf_expr_context::fetch | ( | int | n | ) |
Definition at line 134 of file dwarf2expr.c.
References _, error(), and stack.
Referenced by add_piece(), dwarf2_evaluate_loc_desc_full(), execute_stack_op(), execute_stack_op(), and fetch_address().
| CORE_ADDR dwarf_expr_context::fetch_address | ( | int | n | ) |
Definition at line 201 of file dwarf2expr.c.
References addr_size, dwarf_require_integral(), extract_unsigned_integer(), fetch(), gdbarch_byte_order(), gdbarch_integer_to_address(), gdbarch_integer_to_address_p(), get_unsigned_type(), store_unsigned_integer(), TYPE_LENGTH, value_contents(), and value_type().
Referenced by add_piece(), dwarf2_evaluate_loc_desc_full(), dwarf2_locexpr_baton_eval(), execute_stack_op(), and execute_stack_op().
| 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().
|
pure virtual |
Implemented in symbol_needs_eval_context, dwarf_evaluate_loc_desc, and dwarf_expr_executor.
Referenced by execute_stack_op().
|
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().
|
pure virtual |
Implemented in symbol_needs_eval_context, dwarf_evaluate_loc_desc, and dwarf_expr_executor.
Referenced by execute_stack_op().
|
pure virtual |
Implemented in symbol_needs_eval_context, dwarf_evaluate_loc_desc, and dwarf_expr_executor.
Referenced by execute_stack_op().
|
inlinevirtual |
Reimplemented in symbol_needs_eval_context, and dwarf_evaluate_loc_desc.
Definition at line 209 of file dwarf2expr.h.
Referenced by get_frame_pc_for_per_cu_dwarf_call().
|
pure virtual |
Implemented in symbol_needs_eval_context, dwarf_evaluate_loc_desc, and dwarf_expr_executor.
Referenced by execute_stack_op().
|
pure virtual |
Implemented in symbol_needs_eval_context, dwarf_evaluate_loc_desc, and dwarf_expr_executor.
Referenced by execute_stack_op().
Implemented in symbol_needs_eval_context, dwarf_evaluate_loc_desc, and dwarf_expr_executor.
Referenced by execute_stack_op().
|
private |
Definition at line 123 of file dwarf2expr.c.
References _, error(), and stack.
Referenced by execute_stack_op().
|
private |
Definition at line 107 of file dwarf2expr.c.
References stack.
Referenced by execute_stack_op(), and push_address().
| void dwarf_expr_context::push_address | ( | CORE_ADDR | value, |
| bool | in_stack_memory | ||
| ) |
Definition at line 115 of file dwarf2expr.c.
References address_type(), push(), and value_from_ulongest().
Referenced by execute_stack_op(), and symbol_needs_eval_context::push_dwarf_reg_entry_value().
|
pure virtual |
Implemented in symbol_needs_eval_context, dwarf_evaluate_loc_desc, and dwarf_expr_executor.
Referenced by execute_stack_op().
|
pure virtual |
Implemented in symbol_needs_eval_context, dwarf_evaluate_loc_desc, and dwarf_expr_executor.
Referenced by execute_stack_op().
|
pure virtual |
Implemented in symbol_needs_eval_context, dwarf_evaluate_loc_desc, and dwarf_expr_executor.
Referenced by execute_stack_op().
|
private |
| int dwarf_expr_context::addr_size |
Definition at line 136 of file dwarf2expr.h.
Referenced by address_type(), dwarf2_evaluate_loc_desc_full(), dwarf2_loc_desc_get_symbol_read_needs(), dwarf2_locexpr_baton_eval(), execute_stack_op(), execute_stack_op(), fetch_address(), and dwarf_evaluate_loc_desc::push_dwarf_reg_entry_value().
| const gdb_byte* dwarf_expr_context::data |
Definition at line 157 of file dwarf2expr.h.
Referenced by add_piece(), dwarf2_evaluate_loc_desc_full(), dwarf2_locexpr_baton_eval(), and execute_stack_op().
| struct gdbarch* dwarf_expr_context::gdbarch |
Definition at line 133 of file dwarf2expr.h.
Referenced by dwarf2_evaluate_loc_desc_full(), dwarf2_loc_desc_get_symbol_read_needs(), dwarf2_locexpr_baton_eval(), and execute_stack_op().
| int dwarf_expr_context::initialized |
Definition at line 161 of file dwarf2expr.h.
Referenced by dwarf2_evaluate_loc_desc_full(), and execute_stack_op().
| ULONGEST dwarf_expr_context::len |
Definition at line 156 of file dwarf2expr.h.
Referenced by add_piece(), dwarf2_evaluate_loc_desc_full(), dwarf2_locexpr_baton_eval(), eval(), execute_stack_op(), dwarf_expr_executor::read_mem(), dwarf_evaluate_loc_desc::read_mem(), and symbol_needs_eval_context::read_mem().
| enum dwarf_value_location dwarf_expr_context::location |
Definition at line 151 of file dwarf2expr.h.
Referenced by add_piece(), dwarf2_evaluate_loc_desc_full(), dwarf2_loc_desc_get_symbol_read_needs(), dwarf2_locexpr_baton_eval(), execute_stack_op(), and execute_stack_op().
| int dwarf_expr_context::max_recursion_depth |
Definition at line 148 of file dwarf2expr.h.
Referenced by execute_stack_op().
| CORE_ADDR dwarf_expr_context::offset |
Definition at line 143 of file dwarf2expr.h.
Referenced by add_piece(), dwarf2_evaluate_loc_desc_full(), dwarf2_loc_desc_get_symbol_read_needs(), dwarf2_locexpr_baton_eval(), execute_stack_op(), execute_stack_op(), dwarf_evaluate_loc_desc::get_tls_address(), and dwarf_evaluate_loc_desc::push_dwarf_reg_entry_value().
| std::vector<dwarf_expr_piece> dwarf_expr_context::pieces |
Definition at line 185 of file dwarf2expr.h.
Referenced by add_piece(), dwarf2_evaluate_loc_desc_full(), and dwarf2_loc_desc_get_symbol_read_needs().
| int dwarf_expr_context::recursion_depth |
Definition at line 148 of file dwarf2expr.h.
Referenced by eval(), and execute_stack_op().
| int dwarf_expr_context::ref_addr_size |
Definition at line 140 of file dwarf2expr.h.
Referenced by dwarf2_evaluate_loc_desc_full(), dwarf2_loc_desc_get_symbol_read_needs(), dwarf2_locexpr_baton_eval(), execute_stack_op(), and execute_stack_op().
| 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().
1.8.14