GDB (xrefs)
|
#include "dwarf2/expr.h"
Go to the source code of this file.
Classes | |
struct | property_addr_info |
struct | dwarf2_locexpr_baton |
struct | dwarf2_loclist_baton |
struct | dwarf2_offset_baton |
struct | dwarf2_property_baton |
struct | call_site_chain |
Functions | |
const gdb_byte * | dwarf2_find_location_expression (const dwarf2_loclist_baton *baton, size_t *locexpr_length, CORE_ADDR pc) |
void | func_get_frame_base_dwarf_block (struct symbol *framefunc, CORE_ADDR pc, const gdb_byte **start, size_t *length) |
value * | compute_var_value (const char *name) |
struct call_site_parameter * | dwarf_expr_reg_to_entry_parameter (frame_info_ptr frame, enum call_site_parameter_kind kind, union call_site_parameter_u kind_u, dwarf2_per_cu_data **per_cu_return, dwarf2_per_objfile **per_objfile_return) |
struct value * | dwarf2_evaluate_loc_desc (struct type *type, frame_info_ptr frame, const gdb_byte *data, size_t size, dwarf2_per_cu_data *per_cu, dwarf2_per_objfile *per_objfile, bool as_lval=true) |
bool | dwarf2_evaluate_property (const struct dynamic_prop *prop, frame_info_ptr frame, const struct property_addr_info *addr_stack, CORE_ADDR *value, gdb::array_view< CORE_ADDR > push_values={}) |
void | dwarf2_compile_property_to_c (string_file *stream, const char *result_name, struct gdbarch *gdbarch, std::vector< bool > ®isters_used, const struct dynamic_prop *prop, CORE_ADDR address, struct symbol *sym) |
gdb::unique_xmalloc_ptr< call_site_chain > | call_site_find_chain (struct gdbarch *gdbarch, CORE_ADDR caller_pc, CORE_ADDR callee_pc) |
int | dwarf_reg_to_regnum (struct gdbarch *arch, int dwarf_reg) |
int | dwarf_reg_to_regnum_or_error (struct gdbarch *arch, ULONGEST dwarf_reg) |
void | invalid_synthetic_pointer () |
struct value * | indirect_synthetic_pointer (sect_offset die, LONGEST byte_offset, dwarf2_per_cu_data *per_cu, dwarf2_per_objfile *per_objfile, frame_info_ptr frame, struct type *type, bool resolve_abstract_p=false) |
struct value * | value_of_dwarf_reg_entry (struct type *type, struct frame_info_ptr frame, enum call_site_parameter_kind kind, union call_site_parameter_u kind_u) |
Variables | |
unsigned int | entry_values_debug |
const struct symbol_computed_ops | dwarf2_locexpr_funcs |
const struct symbol_computed_ops | dwarf2_loclist_funcs |
const struct symbol_computed_ops | ada_imported_funcs |
const struct symbol_block_ops | dwarf2_block_frame_base_locexpr_funcs |
const struct symbol_block_ops | dwarf2_block_frame_base_loclist_funcs |
const struct symbol_block_ops | ada_function_alias_funcs |
|
extern |
Definition at line 1091 of file loc.c.
References call_site_find_chain_1(), entry_values_debug, exception_print(), and gdb_stdout.
Referenced by dwarf2_tailcall_sniffer_first().
value * compute_var_value | ( | const char * | name | ) |
Definition at line 625 of file loc.c.
References block_symbol::block, lookup_symbol(), name, block_symbol::symbol, value_of_variable(), and VAR_DOMAIN.
Referenced by dwarf2_evaluate_property(), and sect_variable_value().
void dwarf2_compile_property_to_c | ( | string_file * | stream, |
const char * | result_name, | ||
struct gdbarch * | gdbarch, | ||
std::vector< bool > & | registers_used, | ||
const struct dynamic_prop * | prop, | ||
CORE_ADDR | address, | ||
struct symbol * | sym ) |
Definition at line 1783 of file loc.c.
References dwarf2_per_cu_data::addr_size(), dynamic_prop::baton(), compile_dwarf_bounds_to_c(), dwarf2_locexpr_baton::data, dwarf2_find_location_expression(), dynamic_prop::kind(), dwarf2_property_baton::locexpr, dwarf2_property_baton::loclist, dwarf2_locexpr_baton::per_cu, dwarf2_loclist_baton::per_cu, dwarf2_locexpr_baton::per_objfile, dwarf2_loclist_baton::per_objfile, PROP_LOCEXPR, PROP_LOCLIST, dwarf2_locexpr_baton::size, and size.
Referenced by generate_vla_size().
struct value * dwarf2_evaluate_loc_desc | ( | struct type * | type, |
frame_info_ptr | frame, | ||
const gdb_byte * | data, | ||
size_t | size, | ||
dwarf2_per_cu_data * | per_cu, | ||
dwarf2_per_objfile * | per_objfile, | ||
bool | as_lval = true ) |
Definition at line 1564 of file loc.c.
References dwarf2_evaluate_loc_desc_full(), and size.
Referenced by dwarf2_compute_name(), dwarf2_evaluate_property(), dwarf_entry_parameter_to_value(), call_site_target::iterate_over_addresses(), locexpr_get_frame_base(), locexpr_read_variable(), loclist_get_frame_base(), and loclist_read_variable().
bool dwarf2_evaluate_property | ( | const struct dynamic_prop * | prop, |
frame_info_ptr | frame, | ||
const struct property_addr_info * | addr_stack, | ||
CORE_ADDR * | value, | ||
gdb::array_view< CORE_ADDR > | push_values = {} ) |
Definition at line 1647 of file loc.c.
References property_addr_info::addr, dwarf2_per_cu_data::addr_size(), dynamic_prop::baton(), check_typedef(), compute_var_value(), dynamic_prop::const_val(), dwarf2_evaluate_loc_desc(), dwarf2_find_location_expression(), dwarf2_locexpr_baton_eval(), get_frame_address_in_block_if_available(), get_selected_frame(), has_stack_frames(), dwarf2_locexpr_baton::is_reference, type::is_unsigned(), dynamic_prop::kind(), type::length(), dwarf2_property_baton::locexpr, dwarf2_property_baton::loclist, property_addr_info::next, dwarf2_offset_baton::offset, dwarf2_property_baton::offset_info, value::optimized_out(), dwarf2_locexpr_baton::per_cu, dwarf2_loclist_baton::per_cu, dwarf2_loclist_baton::per_objfile, PROP_ADDR_OFFSET, PROP_CONST, PROP_LOCEXPR, PROP_LOCLIST, PROP_VARIABLE_NAME, dwarf2_property_baton::property_type, size, property_addr_info::type, dwarf2_offset_baton::type, TYPE_MAIN_TYPE, property_addr_info::valaddr, value_as_address(), value_as_long(), value_at(), value_from_contents(), and dynamic_prop::variable_name().
Referenced by frame_follow_static_link(), gnuv3_baseclass_offset(), resolve_dynamic_array_or_string(), resolve_dynamic_array_or_string_1(), resolve_dynamic_range(), resolve_dynamic_struct(), and resolve_dynamic_type_internal().
const gdb_byte * dwarf2_find_location_expression | ( | const dwarf2_loclist_baton * | baton, |
size_t * | locexpr_length, | ||
CORE_ADDR | pc ) |
Definition at line 365 of file loc.c.
References dwarf2_per_cu_data::addr_size(), objfile::arch(), dwarf2_loclist_baton::base_address, block_for_pc(), dwarf2_loclist_baton::data, DEBUG_LOC_BASE_ADDRESS, DEBUG_LOC_BUFFER_OVERFLOW, DEBUG_LOC_END_OF_LIST, DEBUG_LOC_INVALID_ENTRY, DEBUG_LOC_OFFSET_PAIR, DEBUG_LOC_START_END, DEBUG_LOC_START_LENGTH, decode_debug_loc_addresses(), decode_debug_loc_dwo_addresses(), decode_debug_loclists_addresses(), block::entry_pc(), extract_unsigned_integer(), dwarf2_loclist_baton::from_dwo, gdbarch_byte_order(), block::linkage_function(), objfile::obfd, dwarf2_per_objfile::objfile, dwarf2_loclist_baton::per_cu, dwarf2_loclist_baton::per_objfile, read_unsigned_leb128(), dwarf2_loclist_baton::size, objfile::text_section_offset(), symbol::value_block(), and dwarf2_per_cu_data::version().
Referenced by dwarf2_compile_property_to_c(), dwarf2_evaluate_property(), dwarf2_fetch_die_loc_sect_off(), loclist_find_frame_base_location(), loclist_generate_c_location(), loclist_read_variable(), loclist_read_variable_at_entry(), and loclist_tracepoint_var_ref().
struct call_site_parameter * dwarf_expr_reg_to_entry_parameter | ( | frame_info_ptr | frame, |
enum call_site_parameter_kind | kind, | ||
union call_site_parameter_u | kind_u, | ||
dwarf2_per_cu_data ** | per_cu_return, | ||
dwarf2_per_objfile ** | per_objfile_return ) |
Definition at line 1141 of file loc.c.
References call_site::call_site(), call_site_for_pc(), call_site_parameter_matches(), frame_unwind_arch(), func_verify_no_selftailcall(), gdbarch_bfd_arch_info(), get_frame_arch(), get_frame_func(), get_frame_pc(), get_frame_type(), get_prev_frame(), INLINE_FRAME, call_site::iterate_over_addresses(), lookup_minimal_symbol_by_pc(), bound_minimal_symbol::minsym, paddress(), call_site::parameter, call_site::parameter_count, call_site::per_cu, call_site::per_objfile, and general_symbol_info::print_name().
Referenced by dwarf_expr_context::push_dwarf_reg_entry_value(), and value_of_dwarf_reg_entry().
|
extern |
Definition at line 2275 of file loc.c.
References complaint, and gdbarch_dwarf2_reg_to_regnum().
Referenced by dwarf2_frame_cache(), dwarf2_restore_rule(), dwarf_block_to_sp_offset(), dwarf_reg_to_regnum_or_error(), and locexpr_regname().
|
extern |
Definition at line 2304 of file loc.c.
References dwarf_reg_to_regnum(), and throw_bad_regnum_error().
Referenced by do_compile_dwarf_expr_to_c(), dwarf2_compile_expr_to_ax(), dwarf2_fetch_cfa_info(), dwarf2_frame_prev_register(), dwarf_expr_context::execute_stack_op(), dwarf_expr_context::fetch_result(), read_addr_from_reg(), and rw_pieced_value().
|
extern |
Definition at line 605 of file loc.c.
References symbol_block_ops::find_frame_base_location, general_symbol_info::natural_name(), and SYMBOL_BLOCK_OPS.
Referenced by do_compile_dwarf_expr_to_c(), dwarf2_compile_expr_to_ax(), dwarf_expr_context::get_frame_base(), and locexpr_describe_location_piece().
|
extern |
Definition at line 1456 of file loc.c.
References dwarf2_locexpr_baton::data, dwarf2_evaluate_loc_desc_full(), dwarf2_fetch_die_loc_sect_off(), dwarf2_fetch_die_type_sect_off(), fetch_const_value_from_synthetic_pointer(), get_frame_address_in_block(), invalid_synthetic_pointer(), dwarf2_locexpr_baton::per_cu, dwarf2_locexpr_baton::per_objfile, dwarf2_locexpr_baton::size, and type::target_type().
Referenced by coerce_pieced_ref(), indirect_pieced_value(), and sect_variable_value().
|
extern |
Definition at line 96 of file loc.c.
Referenced by dwarf2_evaluate_loc_desc_full(), fetch_const_value_from_synthetic_pointer(), dwarf_expr_context::fetch_result(), and indirect_synthetic_pointer().
|
extern |
Definition at line 1342 of file loc.c.
References value::allocate_computed(), check_typedef(), value::contents_raw(), dwarf_entry_parameter_to_value(), dwarf_expr_reg_to_entry_parameter(), entry_data_value_funcs, get_prev_frame(), call_site_parameter::kind, type::length(), release_value(), value::set_lazy(), type::target_type(), and TYPE_IS_REFERENCE.
Referenced by ppc_sysv_get_return_buf_addr(), and value_of_dwarf_block_entry().
|
extern |
Definition at line 117 of file ada-imported.c.
|
extern |
Definition at line 88 of file ada-imported.c.
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
Definition at line 636 of file loc.c.
Referenced by call_site_find_chain(), chain_candidate(), dwarf2_evaluate_loc_desc_full(), dwarf2_locexpr_baton_eval(), and dwarf2_tailcall_sniffer_first().