GDB (xrefs)
|
#include "defs.h"
#include "ui-out.h"
#include "value.h"
#include "frame.h"
#include "gdbcore.h"
#include "target.h"
#include "inferior.h"
#include "ax.h"
#include "ax-gdb.h"
#include "regcache.h"
#include "objfiles.h"
#include "block.h"
#include "gdbcmd.h"
#include "dwarf2.h"
#include "dwarf2expr.h"
#include "dwarf2loc.h"
#include "dwarf2-frame.h"
#include "compile/compile.h"
Go to the source code of this file.
Classes | |
struct | dwarf_expr_baton |
struct | piece_closure |
struct | needs_frame_baton |
Typedefs | |
typedef struct call_site * | call_sitep |
Enumerations | |
enum | debug_loc_kind { DEBUG_LOC_END_OF_LIST = 0, DEBUG_LOC_BASE_ADDRESS = 1, DEBUG_LOC_START_END = 2, DEBUG_LOC_START_LENGTH = 3, DEBUG_LOC_BUFFER_OVERFLOW = -1, DEBUG_LOC_INVALID_ENTRY = -2 } |
Variables | |
int | dwarf_always_disassemble |
const struct dwarf_expr_context_funcs | dwarf_expr_ctx_funcs |
const struct symbol_block_ops | dwarf2_block_frame_base_locexpr_funcs |
const struct symbol_block_ops | dwarf2_block_frame_base_loclist_funcs |
unsigned int | entry_values_debug = 0 |
static const struct lval_funcs | entry_data_value_funcs |
static const struct lval_funcs | pieced_value_funcs |
static const struct dwarf_expr_context_funcs | needs_frame_ctx_funcs |
const struct symbol_computed_ops | dwarf2_locexpr_funcs |
const struct symbol_computed_ops | dwarf2_loclist_funcs |
initialize_file_ftype | _initialize_dwarf2loc |
typedef struct call_site* call_sitep |
Definition at line 730 of file dwarf2loc.c.
enum debug_loc_kind |
Enumerator | |
---|---|
DEBUG_LOC_END_OF_LIST | |
DEBUG_LOC_BASE_ADDRESS | |
DEBUG_LOC_START_END | |
DEBUG_LOC_START_LENGTH | |
DEBUG_LOC_BUFFER_OVERFLOW | |
DEBUG_LOC_INVALID_ENTRY |
Definition at line 58 of file dwarf2loc.c.
void _initialize_dwarf2loc | ( | void | ) |
Definition at line 4488 of file dwarf2loc.c.
References _, add_setshow_zuinteger_cmd(), class_maintenance, setdebuglist, show_entry_values_debug(), and showdebuglist.
|
static |
Definition at line 2795 of file dwarf2loc.c.
References ax_const_l(), ax_simple(), ax_trace_quick(), ax_zero_ext(), gdb_assert, gdbarch_bits_big_endian(), and agent_expr::tracing.
Referenced by dwarf2_compile_expr_to_ax().
|
static |
Definition at line 1413 of file dwarf2loc.c.
References piece_closure::addr_size, DWARF_VALUE_STACK, dwarf_expr_piece::location, piece_closure::n_pieces, piece_closure::per_cu, piece_closure::pieces, piece_closure::refc, dwarf_expr_piece::v, dwarf_expr_piece::value, and value_incref().
Referenced by dwarf2_evaluate_loc_desc_full().
struct call_site_chain* call_site_find_chain | ( | struct gdbarch * | gdbarch, |
CORE_ADDR | caller_pc, | ||
CORE_ADDR | callee_pc | ||
) |
Definition at line 982 of file dwarf2loc.c.
References call_site_find_chain_1(), CATCH, END_CATCH, exception_print(), gdb_stdout, NO_ENTRY_VALUE_ERROR, RETURN_MASK_ERROR, throw_exception(), and TRY.
Referenced by dwarf2_tailcall_sniffer_first().
|
static |
Definition at line 840 of file dwarf2loc.c.
References _, call_site_for_pc(), call_site_to_target_addr(), chain_candidate(), core_addr_eq(), core_addr_hash(), discard_cleanups(), do_cleanups(), free_current_contents(), func_addr_to_tail_call_list(), gdb_assert, get_pc_function_start(), hashtab_obstack_allocate(), lookup_minimal_symbol_by_pc(), make_cleanup(), make_cleanup_htab_delete(), make_cleanup_obstack_free(), bound_minimal_symbol::minsym, MSYMBOL_PRINT_NAME, NO_ENTRY_VALUE_ERROR, paddress(), call_site::pc, SYMBOL_TYPE, call_site::tail_call_next, throw_error(), TYPE_TAIL_CALL_LIST, VEC, VEC_cleanup, VEC_empty, VEC_last, VEC_pop, and VEC_safe_push.
Referenced by call_site_find_chain().
|
static |
Definition at line 1011 of file dwarf2loc.c.
References CALL_SITE_PARAMETER_DWARF_REG, CALL_SITE_PARAMETER_FB_OFFSET, CALL_SITE_PARAMETER_PARAM_OFFSET, cu_offset::cu_off, call_site_parameter_u::dwarf_reg, call_site_parameter_u::fb_offset, call_site_parameter::kind, call_site_parameter_u::param_offset, and call_site_parameter::u.
Referenced by dwarf_expr_reg_to_entry_parameter().
|
static |
Definition at line 527 of file dwarf2loc.c.
References _, BMSYMBOL_VALUE_ADDRESS, builtin_type::builtin_func_ptr, builtin_type(), dwarf2_locexpr_baton::data, dwarf2_evaluate_loc_desc(), FIELD_DWARF_BLOCK, FIELD_LOC_KIND, FIELD_LOC_KIND_DWARF_BLOCK, FIELD_LOC_KIND_PHYSADDR, FIELD_LOC_KIND_PHYSNAME, FIELD_STATIC_PHYSADDR, FIELD_STATIC_PHYSNAME, get_frame_arch(), internal_error(), lookup_minimal_symbol(), lookup_minimal_symbol_by_pc(), lval_memory, bound_minimal_symbol::minsym, MSYMBOL_PRINT_NAME, NO_ENTRY_VALUE_ERROR, paddress(), call_site::pc, dwarf2_locexpr_baton::per_cu, dwarf2_locexpr_baton::size, call_site::target, throw_error(), value_address(), value_as_address(), and VALUE_LVAL.
Referenced by call_site_find_chain_1(), dwarf_expr_reg_to_entry_parameter(), and func_verify_no_selftailcall().
|
static |
Definition at line 743 of file dwarf2loc.c.
References call_site_chain::call_site, call_site_chain::callees, call_site_chain::callers, fprintf_unfiltered(), fputc_unfiltered(), fputs_unfiltered(), gdb_assert, gdb_stdlog, call_site_chain::length, min, tailcall_dump(), VEC_address, VEC_empty, VEC_index, VEC_length, xfree(), and xmalloc().
Referenced by call_site_find_chain_1().
|
static |
Definition at line 1956 of file dwarf2loc.c.
References DWARF_VALUE_IMPLICIT_POINTER, dwarf_expr_piece::location, piece_closure::n_pieces, piece_closure::pieces, dwarf_expr_piece::size, value_bitpos(), value_bitsize(), value_computed_closure(), and value_offset().
|
static |
Definition at line 1560 of file dwarf2loc.c.
References extract_bits(), gdb_assert, and insert_bits().
Referenced by read_pieced_value(), and write_pieced_value().
Definition at line 2112 of file dwarf2loc.c.
References piece_closure::refc, and value_computed_closure().
|
static |
Definition at line 101 of file dwarf2loc.c.
References DEBUG_LOC_BASE_ADDRESS, DEBUG_LOC_BUFFER_OVERFLOW, DEBUG_LOC_END_OF_LIST, DEBUG_LOC_START_END, extract_signed_integer(), and extract_unsigned_integer().
Referenced by dwarf2_find_location_expression(), and loclist_describe_location().
|
static |
Definition at line 144 of file dwarf2loc.c.
References DEBUG_LOC_BASE_ADDRESS, DEBUG_LOC_BUFFER_OVERFLOW, DEBUG_LOC_END_OF_LIST, DEBUG_LOC_INVALID_ENTRY, DEBUG_LOC_START_END, DEBUG_LOC_START_LENGTH, dwarf2_read_addr_index(), extract_unsigned_integer(), and gdb_read_uleb128().
Referenced by dwarf2_find_location_expression(), and loclist_describe_location().
DEF_VEC_P | ( | call_sitep | ) |
|
static |
Definition at line 3756 of file dwarf2loc.c.
References _, cu_offset::cu_off, dwarf2_get_die_type(), dwarf2_read_addr_index(), error(), extract_signed_integer(), extract_unsigned_integer(), fprintf_filtered(), fputc_filtered(), gdbarch_byte_order(), locexpr_regname(), name, offset, phex_nz(), plongest(), pulongest(), safe_read_sleb128(), safe_read_uleb128(), type, and type_print().
Referenced by locexpr_describe_location_1().
void dwarf2_compile_expr_to_ax | ( | struct agent_expr * | expr, |
struct axs_value * | loc, | ||
struct gdbarch * | arch, | ||
unsigned int | addr_size, | ||
const gdb_byte * | op_ptr, | ||
const gdb_byte * | op_end, | ||
struct dwarf2_per_cu_data * | per_cu | ||
) |
Definition at line 2855 of file dwarf2loc.c.
References _, access_memory(), ax_const_l(), ax_ext(), ax_goto(), ax_label(), ax_pick(), ax_reg(), ax_simple(), ax_zero_ext(), axs_lvalue_memory, axs_lvalue_register, axs_rvalue, block_for_pc(), block_linkage_function(), cu_offset::cu_off, dwarf2_locexpr_baton::data, do_cleanups(), dwarf2_compile_expr_to_ax(), dwarf2_fetch_cfa_info(), dwarf2_fetch_die_loc_cu_off(), dwarf2_per_cu_text_offset(), dwarf2_reg_to_regnum_or_error(), dwarf_expr_require_composition(), error(), extract_signed_integer(), extract_unsigned_integer(), func_get_frame_base_dwarf_block(), gdb_assert, gdbarch_bits_big_endian(), gdbarch_byte_order(), get_ax_pc(), internal_error(), axs_value::kind, agent_expr::len, len, make_cleanup(), offset, dwarf2_locexpr_baton::per_cu, axs_value::reg, regnum, require_rvalue(), safe_read_sleb128(), safe_read_uleb128(), agent_expr::scope, dwarf2_locexpr_baton::size, size, TARGET_CHAR_BIT, axs_value::u, unimplemented(), VEC, VEC_cleanup, VEC_index, VEC_length, VEC_safe_push, xfree(), and xmalloc().
Referenced by dwarf2_compile_expr_to_ax(), locexpr_tracepoint_var_ref(), and loclist_tracepoint_var_ref().
void dwarf2_compile_property_to_c | ( | struct ui_file * | stream, |
const char * | result_name, | ||
struct gdbarch * | gdbarch, | ||
unsigned char * | registers_used, | ||
const struct dynamic_prop * | prop, | ||
CORE_ADDR | pc, | ||
struct symbol * | sym | ||
) |
Definition at line 2546 of file dwarf2loc.c.
References dynamic_prop_data::baton, compile_dwarf_bounds_to_c(), dwarf2_locexpr_baton::data, dynamic_prop::data, dwarf2_find_location_expression(), dwarf2_per_cu_addr_size(), gdb_assert, dynamic_prop::kind, dwarf2_property_baton::locexpr, dwarf2_property_baton::loclist, dwarf2_locexpr_baton::per_cu, dwarf2_loclist_baton::per_cu, PROP_LOCEXPR, PROP_LOCLIST, dwarf2_locexpr_baton::size, and size.
Referenced by generate_vla_size().
struct value* dwarf2_evaluate_loc_desc | ( | struct type * | type, |
struct frame_info * | frame, | ||
const gdb_byte * | data, | ||
size_t | size, | ||
struct dwarf2_per_cu_data * | per_cu | ||
) |
Definition at line 2391 of file dwarf2loc.c.
References dwarf2_evaluate_loc_desc_full().
Referenced by call_site_to_target_addr(), dwarf2_compute_name(), dwarf2_evaluate_property(), dwarf_entry_parameter_to_value(), locexpr_read_variable(), and loclist_read_variable().
|
static |
Definition at line 2176 of file dwarf2loc.c.
References _, dwarf_expr_context::addr_size, value::address, allocate_computed_value(), allocate_optimized_out_value(), allocate_piece_closure(), allocate_value(), dwarf_expr_context::baton, CATCH, value::contents, dwarf_expr_context::data, do_cleanups(), dwarf2_per_cu_addr_size(), dwarf2_per_cu_objfile(), dwarf2_per_cu_ref_addr_size(), dwarf2_per_cu_text_offset(), dwarf_expr_ctx_funcs, dwarf_expr_eval(), dwarf_expr_fetch(), dwarf_expr_fetch_address(), dwarf_expr_fetch_in_stack_memory(), DWARF_VALUE_IMPLICIT_POINTER, DWARF_VALUE_LITERAL, DWARF_VALUE_MEMORY, DWARF_VALUE_OPTIMIZED_OUT, DWARF_VALUE_REGISTER, DWARF_VALUE_STACK, END_CATCH, error(), exception_print(), dwarf_expr_baton::frame, dwarf_expr_context::funcs, gdb_stdout, dwarf_expr_context::gdbarch, gdbarch_byte_order(), gdbarch_dwarf2_reg_to_regnum(), get_frame_arch(), get_frame_id(), get_objfile_arch(), if(), dwarf_expr_context::initialized, internal_error(), invalid_synthetic_pointer(), dwarf_expr_context::len, dwarf_expr_context::location, longest_to_int(), make_cleanup_free_dwarf_expr_context(), make_cleanup_value_free(), make_cleanup_value_free_to_mark(), mark_value_bytes_unavailable(), new_dwarf_expr_context(), NO_ENTRY_VALUE_ERROR, NOT_AVAILABLE_ERROR, dwarf_expr_context::num_pieces, dwarf_expr_baton::obj_address, dwarf_expr_context::offset, dwarf_expr_baton::per_cu, dwarf_expr_context::pieces, dwarf_expr_context::ref_addr_size, RETURN_MASK_ERROR, set_value_initialized(), set_value_offset(), set_value_stack(), dwarf_expr_piece::size, throw_exception(), TRY, TYPE_LENGTH, value_as_long(), value_at_lazy(), value_contents_all(), value_contents_copy(), value_contents_raw(), VALUE_FRAME_ID, value_from_register(), value_incref(), value_mark(), value_optimized_out(), and value_type().
Referenced by dwarf2_evaluate_loc_desc(), and indirect_pieced_value().
int dwarf2_evaluate_property | ( | const struct dynamic_prop * | prop, |
struct property_addr_info * | addr_stack, | ||
CORE_ADDR * | value | ||
) |
Definition at line 2463 of file dwarf2loc.c.
References _, property_addr_info::addr, dynamic_prop_data::baton, dynamic_prop_data::const_val, dynamic_prop::data, dwarf2_evaluate_loc_desc(), dwarf2_find_location_expression(), dwarf2_locexpr_baton_eval(), error(), get_frame_address_in_block(), get_selected_frame(), dynamic_prop::kind, dwarf2_property_baton::locexpr, dwarf2_property_baton::loclist, property_addr_info::next, dwarf2_offset_baton::offset, dwarf2_property_baton::offset_info, dwarf2_loclist_baton::per_cu, PROP_ADDR_OFFSET, PROP_CONST, PROP_LOCEXPR, PROP_LOCLIST, dwarf2_property_baton::referenced_type, size, property_addr_info::type, dwarf2_offset_baton::type, property_addr_info::valaddr, value_as_address(), value_at(), value_from_contents(), and value_optimized_out().
Referenced by resolve_dynamic_range(), and resolve_dynamic_type_internal().
const gdb_byte* dwarf2_find_location_expression | ( | struct dwarf2_loclist_baton * | baton, |
size_t * | locexpr_length, | ||
CORE_ADDR | pc | ||
) |
Definition at line 205 of file dwarf2loc.c.
References _, dwarf2_loclist_baton::base_address, block_for_pc(), block_linkage_function(), BLOCK_START, gdbarch::byte_order, dwarf2_loclist_baton::data, DEBUG_LOC_BASE_ADDRESS, DEBUG_LOC_BUFFER_OVERFLOW, DEBUG_LOC_END_OF_LIST, DEBUG_LOC_INVALID_ENTRY, DEBUG_LOC_START_END, DEBUG_LOC_START_LENGTH, decode_debug_loc_addresses(), decode_debug_loc_dwo_addresses(), dwarf2_per_cu_addr_size(), dwarf2_per_cu_objfile(), dwarf2_per_cu_text_offset(), error(), extract_unsigned_integer(), dwarf2_loclist_baton::from_dwo, gdb_assert_not_reached, gdbarch_byte_order(), get_objfile_arch(), objfile::obfd, dwarf2_loclist_baton::per_cu, dwarf2_loclist_baton::size, and SYMBOL_BLOCK_VALUE.
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().
|
static |
Definition at line 2717 of file dwarf2loc.c.
References dwarf_expr_context::addr_size, dwarf_expr_context::baton, do_cleanups(), dwarf2_per_cu_addr_size(), dwarf2_per_cu_objfile(), dwarf2_per_cu_ref_addr_size(), dwarf2_per_cu_text_offset(), dwarf_expr_eval(), DWARF_VALUE_REGISTER, dwarf_expr_context::funcs, dwarf_expr_context::gdbarch, get_objfile_arch(), dwarf_expr_context::location, dwarf_expr_piece::location, make_cleanup_free_dwarf_expr_context(), make_cleanup_value_free_to_mark(), needs_frame_baton::needs_frame, needs_frame_ctx_funcs, new_dwarf_expr_context(), dwarf_expr_context::num_pieces, dwarf_expr_context::offset, needs_frame_baton::per_cu, dwarf_expr_context::pieces, dwarf_expr_context::ref_addr_size, and value_mark().
Referenced by locexpr_read_needs_frame().
|
static |
Definition at line 2405 of file dwarf2loc.c.
References dwarf_expr_context::addr_size, dwarf_expr_context::baton, dwarf2_locexpr_baton::data, dwarf_expr_context::data, do_cleanups(), dwarf2_per_cu_addr_size(), dwarf2_per_cu_objfile(), dwarf2_per_cu_ref_addr_size(), dwarf2_per_cu_text_offset(), dwarf_expr_ctx_funcs, dwarf_expr_eval(), dwarf_expr_fetch_address(), dwarf_expr_read_addr_from_reg(), DWARF_VALUE_IMPLICIT_POINTER, DWARF_VALUE_LITERAL, DWARF_VALUE_MEMORY, DWARF_VALUE_OPTIMIZED_OUT, DWARF_VALUE_REGISTER, DWARF_VALUE_STACK, extract_signed_integer(), dwarf_expr_baton::frame, dwarf_expr_context::funcs, dwarf_expr_context::gdbarch, gdbarch_byte_order(), get_objfile_arch(), get_selected_frame(), dwarf_expr_context::len, dwarf_expr_context::location, make_cleanup_free_dwarf_expr_context(), new_dwarf_expr_context(), dwarf_expr_baton::obj_address, dwarf_expr_context::offset, dwarf2_locexpr_baton::per_cu, dwarf_expr_baton::per_cu, dwarf_expr_context::ref_addr_size, and dwarf2_locexpr_baton::size.
Referenced by dwarf2_evaluate_property().
Definition at line 2780 of file dwarf2loc.c.
References _, error(), and gdbarch_dwarf2_reg_to_regnum().
Referenced by do_compile_dwarf_expr_to_c(), and dwarf2_compile_expr_to_ax().
|
static |
Definition at line 1143 of file dwarf2loc.c.
References _, call_site_parameter::data_value, call_site_parameter::data_value_size, dwarf2_evaluate_loc_desc(), NO_ENTRY_VALUE_ERROR, size, throw_error(), call_site_parameter::value, and call_site_parameter::value_size.
Referenced by value_of_dwarf_reg_entry().
|
static |
Definition at line 488 of file dwarf2loc.c.
References dwarf_expr_context::baton, dwarf_expr_context::funcs, dwarf_expr_context_funcs::get_frame_pc, dwarf_expr_baton::per_cu, and per_cu_dwarf_call().
Definition at line 344 of file dwarf2loc.c.
References _, block_linkage_function(), error(), dwarf_expr_baton::frame, func_get_frame_base_dwarf_block(), gdb_assert, get_frame_address_in_block(), and get_frame_block().
|
static |
Definition at line 436 of file dwarf2loc.c.
References dwarf2_frame_cfa(), and dwarf_expr_baton::frame.
|
static |
Definition at line 447 of file dwarf2loc.c.
References dwarf_expr_baton::frame, and get_frame_address_in_block().
Definition at line 1232 of file dwarf2loc.c.
References dwarf2_read_addr_index(), and dwarf_expr_baton::per_cu.
|
static |
Definition at line 499 of file dwarf2loc.c.
References dwarf_expr_context::baton, dwarf2_get_die_type(), and dwarf_expr_baton::per_cu.
|
static |
Definition at line 1243 of file dwarf2loc.c.
References _, error(), gdb_assert, and dwarf_expr_baton::obj_address.
|
static |
Definition at line 323 of file dwarf2loc.c.
References dwarf_expr_baton::frame, gdbarch_dwarf2_reg_to_regnum(), get_frame_arch(), regnum, and value_from_register().
|
static |
Definition at line 1178 of file dwarf2loc.c.
References _, dwarf_expr_context::addr_size, dwarf_expr_context::baton, call_site_parameter::data_value, call_site_parameter::data_value_size, dwarf2_per_cu_addr_size(), dwarf2_per_cu_objfile(), dwarf2_per_cu_text_offset(), dwarf_expr_ctx_funcs, dwarf_expr_eval(), dwarf_expr_reg_to_entry_parameter(), dwarf_expr_baton::frame, dwarf_expr_context::funcs, gdb_assert, dwarf_expr_context::gdbarch, get_objfile_arch(), get_prev_frame(), NO_ENTRY_VALUE_ERROR, dwarf_expr_baton::obj_address, dwarf_expr_context::offset, dwarf_expr_baton::per_cu, size, throw_error(), call_site_parameter::value, and call_site_parameter::value_size.
Definition at line 311 of file dwarf2loc.c.
References address_from_register(), dwarf_expr_baton::frame, gdbarch_dwarf2_reg_to_regnum(), get_frame_arch(), and regnum.
Referenced by dwarf2_locexpr_baton_eval().
Definition at line 335 of file dwarf2loc.c.
References read_memory().
|
static |
Definition at line 1035 of file dwarf2loc.c.
References _, call_site_for_pc(), call_site_parameter_matches(), call_site_to_target_addr(), frame_unwind_arch(), func_verify_no_selftailcall(), gdb_assert, gdbarch_bfd_arch_info(), get_frame_arch(), get_frame_func(), get_frame_pc(), get_frame_type(), get_prev_frame(), INLINE_FRAME, lookup_minimal_symbol_by_pc(), bound_minimal_symbol::minsym, MSYMBOL_PRINT_NAME, NO_ENTRY_VALUE_ERROR, paddress(), call_site::parameter, call_site::parameter_count, call_site::per_cu, and throw_error().
Referenced by dwarf_expr_push_dwarf_reg_entry_value(), and value_of_dwarf_reg_entry().
Definition at line 457 of file dwarf2loc.c.
References dwarf2_per_cu_objfile(), dwarf_expr_baton::per_cu, and target_translate_tls_address().
Definition at line 1260 of file dwarf2loc.c.
References check_typedef(), TYPE_CODE, TYPE_CODE_REF, value_computed_closure(), value_incref(), and value_type().
Definition at line 1276 of file dwarf2loc.c.
References value_computed_closure(), and value_incref().
|
static |
Definition at line 1287 of file dwarf2loc.c.
References value_computed_closure(), and value_free().
|
static |
Definition at line 1489 of file dwarf2loc.c.
References extract_bits_primitive(), and gdb_assert.
Referenced by copy_bitwise().
|
static |
Definition at line 2122 of file dwarf2loc.c.
References DWARF_VALUE_STACK, dwarf_expr_piece::location, piece_closure::n_pieces, piece_closure::pieces, piece_closure::refc, dwarf_expr_piece::v, dwarf_expr_piece::value, value_computed_closure(), value_free(), and xfree().
|
static |
Definition at line 617 of file dwarf2loc.c.
References _, BLOCK_START, find_pc_function(), gdb_assert, NO_ENTRY_VALUE_ERROR, paddress(), SYMBOL_BLOCK_VALUE, SYMBOL_TYPE, throw_error(), type, TYPE_CODE, TYPE_CODE_FUNC, TYPE_SPECIFIC_FIELD, and TYPE_SPECIFIC_FUNC.
Referenced by call_site_find_chain_1(), and func_verify_no_selftailcall().
void func_get_frame_base_dwarf_block | ( | struct symbol * | framefunc, |
CORE_ADDR | pc, | ||
const gdb_byte ** | start, | ||
size_t * | length | ||
) |
Definition at line 415 of file dwarf2loc.c.
References _, error(), symbol_block_ops::find_frame_base_location, SYMBOL_BLOCK_OPS, and SYMBOL_NATURAL_NAME.
Referenced by do_compile_dwarf_expr_to_c(), dwarf2_compile_expr_to_ax(), dwarf_expr_frame_base(), and locexpr_describe_location_piece().
Definition at line 645 of file dwarf2loc.c.
References _, call_site_to_target_addr(), core_addr_eq(), core_addr_hash(), do_cleanups(), func_addr_to_tail_call_list(), hashtab_obstack_allocate(), lookup_minimal_symbol_by_pc(), make_cleanup(), make_cleanup_htab_delete(), make_cleanup_obstack_free(), MSYMBOL_PRINT_NAME, NO_ENTRY_VALUE_ERROR, paddress(), SYMBOL_TYPE, call_site::tail_call_next, throw_error(), TYPE_TAIL_CALL_LIST, VEC, VEC_cleanup, VEC_empty, VEC_pop, and VEC_safe_push.
Referenced by dwarf_expr_reg_to_entry_parameter().
|
static |
Definition at line 2834 of file dwarf2loc.c.
References agent_expr::scope.
Referenced by dwarf2_compile_expr_to_ax().
|
static |
Definition at line 1996 of file dwarf2loc.c.
References get_frame_address_in_block().
Referenced by indirect_pieced_value().
Definition at line 2005 of file dwarf2loc.c.
References _, allocate_optimized_out_value(), check_typedef(), dwarf2_locexpr_baton::data, do_cleanups(), dwarf2_evaluate_loc_desc_full(), dwarf2_fetch_constant_bytes(), dwarf2_fetch_die_loc_sect_off(), DWARF_VALUE_IMPLICIT_POINTER, error(), extract_signed_integer(), gdb_assert, gdbarch_byte_order(), get_frame_address_in_block_wrapper(), get_frame_arch(), get_selected_frame(), invalid_synthetic_pointer(), len, dwarf_expr_piece::location, make_cleanup_obstack_free(), piece_closure::n_pieces, dwarf2_locexpr_baton::per_cu, piece_closure::per_cu, piece_closure::pieces, dwarf_expr_piece::ptr, dwarf2_locexpr_baton::size, dwarf_expr_piece::size, type, TYPE_CODE, TYPE_CODE_PTR, TYPE_LENGTH, TYPE_TARGET_TYPE, dwarf_expr_piece::v, value_bitpos(), value_bitsize(), value_computed_closure(), value_contents(), value_from_contents(), value_offset(), and value_type().
|
static |
Definition at line 89 of file dwarf2loc.c.
Referenced by dwarf2_evaluate_loc_desc_full(), and indirect_pieced_value().
|
static |
Definition at line 4214 of file dwarf2loc.c.
References dwarf2_locexpr_baton::data, dwarf2_per_cu_addr_size(), dwarf2_per_cu_objfile(), dwarf2_per_cu_offset_size(), locexpr_describe_location_1(), dwarf2_locexpr_baton::per_cu, dwarf2_locexpr_baton::size, and SYMBOL_LOCATION_BATON.
|
static |
Definition at line 4120 of file dwarf2loc.c.
References _, bits, disassemble_dwarf_expression(), dwarf_always_disassemble, error(), fprintf_filtered(), get_objfile_arch(), locexpr_describe_location_piece(), offset, pulongest(), safe_read_uleb128(), size, and SYMBOL_PRINT_NAME.
Referenced by locexpr_describe_location(), and loclist_describe_location().
|
static |
Definition at line 3586 of file dwarf2loc.c.
References _, block_for_pc(), block_linkage_function(), dwarf2_read_addr_index(), error(), extract_unsigned_integer(), fprintf_filtered(), func_get_frame_base_dwarf_block(), gdbarch_byte_order(), get_objfile_arch(), leb128_size(), locexpr_regname(), objfile_name(), offset, phex_nz(), piece_end_p(), plongest(), safe_read_sleb128(), safe_read_uleb128(), and SYMBOL_PRINT_NAME.
Referenced by locexpr_describe_location_1().
|
static |
Definition at line 375 of file dwarf2loc.c.
References dwarf2_locexpr_baton::data, dwarf2_locexpr_baton::size, and SYMBOL_LOCATION_BATON.
|
static |
Definition at line 4249 of file dwarf2loc.c.
References _, compile_dwarf_expr_to_c(), dwarf2_locexpr_baton::data, dwarf2_per_cu_addr_size(), error(), dwarf2_locexpr_baton::per_cu, dwarf2_locexpr_baton::size, SYMBOL_LOCATION_BATON, and SYMBOL_NATURAL_NAME.
Definition at line 3550 of file dwarf2loc.c.
References dwarf2_locexpr_baton::data, dwarf2_loc_desc_needs_frame(), dwarf2_locexpr_baton::per_cu, dwarf2_locexpr_baton::size, and SYMBOL_LOCATION_BATON.
|
static |
Definition at line 3524 of file dwarf2loc.c.
References dwarf2_locexpr_baton::data, dwarf2_evaluate_loc_desc(), dwarf2_locexpr_baton::per_cu, dwarf2_locexpr_baton::size, SYMBOL_LOCATION_BATON, and SYMBOL_TYPE.
|
static |
Definition at line 3540 of file dwarf2loc.c.
References dwarf2_locexpr_baton::data, dwarf2_locexpr_baton::size, SYMBOL_LOCATION_BATON, SYMBOL_TYPE, and value_of_dwarf_block_entry().
Definition at line 3571 of file dwarf2loc.c.
References gdbarch_dwarf2_reg_to_regnum(), gdbarch_register_name(), and regnum.
Referenced by disassemble_dwarf_expression(), and locexpr_describe_location_piece().
|
static |
Definition at line 4232 of file dwarf2loc.c.
References dwarf2_locexpr_baton::data, dwarf2_compile_expr_to_ax(), dwarf2_per_cu_addr_size(), axs_value::optimized_out, dwarf2_locexpr_baton::per_cu, dwarf2_locexpr_baton::size, and SYMBOL_LOCATION_BATON.
|
static |
Definition at line 4344 of file dwarf2loc.c.
References _, dwarf2_loclist_baton::base_address, gdbarch::byte_order, dwarf2_loclist_baton::data, DEBUG_LOC_BASE_ADDRESS, DEBUG_LOC_BUFFER_OVERFLOW, DEBUG_LOC_END_OF_LIST, DEBUG_LOC_INVALID_ENTRY, DEBUG_LOC_START_END, DEBUG_LOC_START_LENGTH, decode_debug_loc_addresses(), decode_debug_loc_dwo_addresses(), dwarf2_per_cu_addr_size(), dwarf2_per_cu_objfile(), dwarf2_per_cu_offset_size(), dwarf2_per_cu_text_offset(), error(), extract_unsigned_integer(), fprintf_filtered(), dwarf2_loclist_baton::from_dwo, gdb_assert_not_reached, gdbarch_adjust_dwarf2_addr(), gdbarch_byte_order(), get_objfile_arch(), locexpr_describe_location_1(), objfile::obfd, paddress(), dwarf2_loclist_baton::per_cu, dwarf2_loclist_baton::size, SYMBOL_LOCATION_BATON, and SYMBOL_PRINT_NAME.
|
static |
Definition at line 396 of file dwarf2loc.c.
References dwarf2_find_location_expression(), and SYMBOL_LOCATION_BATON.
|
static |
Definition at line 4452 of file dwarf2loc.c.
References _, compile_dwarf_expr_to_c(), dwarf2_loclist_baton::data, dwarf2_find_location_expression(), dwarf2_per_cu_addr_size(), error(), dwarf2_loclist_baton::per_cu, size, SYMBOL_LOCATION_BATON, and SYMBOL_NATURAL_NAME.
Definition at line 4328 of file dwarf2loc.c.
|
static |
Definition at line 4285 of file dwarf2loc.c.
References dwarf2_evaluate_loc_desc(), dwarf2_find_location_expression(), get_frame_address_in_block(), dwarf2_loclist_baton::per_cu, size, SYMBOL_LOCATION_BATON, and SYMBOL_TYPE.
|
static |
Definition at line 4309 of file dwarf2loc.c.
References allocate_optimized_out_value(), dwarf2_loclist_baton::data, dwarf2_find_location_expression(), get_frame_func_if_available(), size, SYMBOL_LOCATION_BATON, SYMBOL_TYPE, and value_of_dwarf_block_entry().
|
static |
Definition at line 4433 of file dwarf2loc.c.
References dwarf2_loclist_baton::data, dwarf2_compile_expr_to_ax(), dwarf2_find_location_expression(), dwarf2_per_cu_addr_size(), axs_value::optimized_out, dwarf2_loclist_baton::per_cu, agent_expr::scope, size, and SYMBOL_LOCATION_BATON.
|
static |
Definition at line 2665 of file dwarf2loc.c.
References dwarf_expr_context::baton, dwarf_expr_push_address(), and needs_frame_baton::needs_frame.
|
static |
Definition at line 2654 of file dwarf2loc.c.
References dwarf_expr_context::baton, dwarf_expr_context::funcs, dwarf_expr_context_funcs::get_frame_pc, needs_frame_baton::per_cu, and per_cu_dwarf_call().
|
static |
Definition at line 2619 of file dwarf2loc.c.
References needs_frame_baton::needs_frame.
|
static |
Definition at line 2633 of file dwarf2loc.c.
References needs_frame_baton::needs_frame.
|
static |
Definition at line 2602 of file dwarf2loc.c.
References needs_frame_baton::needs_frame, not_lval, and value_zero().
Definition at line 2590 of file dwarf2loc.c.
References needs_frame_baton::needs_frame.
|
static |
Definition at line 2612 of file dwarf2loc.c.
Definition at line 2643 of file dwarf2loc.c.
References needs_frame_baton::needs_frame.
Definition at line 2680 of file dwarf2loc.c.
|
static |
Definition at line 2689 of file dwarf2loc.c.
|
static |
Definition at line 470 of file dwarf2loc.c.
References dwarf_expr_context::data, dwarf2_fetch_die_loc_cu_off(), dwarf_expr_eval(), gdb_assert, and get_frame_pc().
Referenced by dwarf_expr_dwarf_call(), and needs_frame_dwarf_call().
Definition at line 3562 of file dwarf2loc.c.
Referenced by locexpr_describe_location_piece().
|
static |
Definition at line 1607 of file dwarf2loc.c.
References _, piece_closure::addr_size, copy_bitwise(), do_cleanups(), DWARF_VALUE_IMPLICIT_POINTER, DWARF_VALUE_LITERAL, DWARF_VALUE_MEMORY, DWARF_VALUE_OPTIMIZED_OUT, DWARF_VALUE_REGISTER, DWARF_VALUE_STACK, error(), frame_find_by_id(), free_current_contents(), gdbarch_bits_big_endian(), gdbarch_byte_order(), gdbarch_dwarf2_reg_to_regnum(), get_frame_arch(), get_frame_register_bytes(), get_type_arch(), internal_error(), dwarf_expr_piece::literal, dwarf_expr_piece::location, make_cleanup(), mark_value_bits_optimized_out(), mark_value_bits_unavailable(), dwarf_expr_piece::mem, piece_closure::n_pieces, offset, paddress(), piece_closure::pieces, read_value_memory(), reg_offset, register_size(), dwarf_expr_piece::regno, dwarf_expr_piece::size, TYPE_LENGTH, dwarf_expr_piece::v, dwarf_expr_piece::value, value_bitpos(), value_bitsize(), value_computed_closure(), value_contents_all(), value_contents_raw(), value_enclosing_type(), VALUE_FRAME_ID, value_offset(), value_type(), and xrealloc().
|
static |
Definition at line 514 of file dwarf2loc.c.
References _, and fprintf_filtered().
Referenced by _initialize_dwarf2loc().
Definition at line 718 of file dwarf2loc.c.
References fprintf_unfiltered(), gdb_stdlog, lookup_minimal_symbol_by_pc(), bound_minimal_symbol::minsym, MSYMBOL_PRINT_NAME, paddress(), and call_site::pc.
Referenced by chain_candidate().
|
static |
Definition at line 2764 of file dwarf2loc.c.
References _, error(), and name.
Referenced by dwarf2_compile_expr_to_ax().
|
static |
Definition at line 1369 of file dwarf2loc.c.
References _, CALL_SITE_PARAMETER_DWARF_REG, CALL_SITE_PARAMETER_FB_OFFSET, dwarf_block_to_dwarf_reg(), dwarf_block_to_fb_offset(), call_site_parameter_u::dwarf_reg, call_site_parameter_u::fb_offset, NO_ENTRY_VALUE_ERROR, throw_error(), and value_of_dwarf_reg_entry().
Referenced by locexpr_read_variable_at_entry(), and loclist_read_variable_at_entry().
|
static |
Definition at line 1317 of file dwarf2loc.c.
References allocate_computed_value(), check_typedef(), dwarf_entry_parameter_to_value(), dwarf_expr_reg_to_entry_parameter(), get_prev_frame(), release_value(), set_value_lazy(), TYPE_CODE, TYPE_CODE_REF, TYPE_LENGTH, TYPE_TARGET_TYPE, and value_contents_raw().
Referenced by value_of_dwarf_block_entry().
Definition at line 1790 of file dwarf2loc.c.
References _, copy_bitwise(), do_cleanups(), DWARF_VALUE_MEMORY, DWARF_VALUE_REGISTER, error(), frame_find_by_id(), free_current_contents(), gdbarch_bits_big_endian(), gdbarch_byte_order(), gdbarch_dwarf2_reg_to_regnum(), get_frame_arch(), get_frame_register_bytes(), get_type_arch(), dwarf_expr_piece::location, make_cleanup(), mark_value_bytes_optimized_out(), dwarf_expr_piece::mem, piece_closure::n_pieces, NOT_AVAILABLE_ERROR, offset, OPTIMIZED_OUT_ERROR, paddress(), piece_closure::pieces, put_frame_register_bytes(), read_memory(), reg_offset, register_size(), dwarf_expr_piece::regno, dwarf_expr_piece::size, throw_error(), TYPE_LENGTH, dwarf_expr_piece::v, value_bitpos(), value_bitsize(), value_computed_closure(), value_contents(), VALUE_FRAME_ID, value_offset(), value_type(), write_memory(), and xrealloc().
initialize_file_ftype _initialize_dwarf2loc |
const struct symbol_block_ops dwarf2_block_frame_base_locexpr_funcs |
Definition at line 387 of file dwarf2loc.c.
Referenced by _initialize_dwarf2_read().
const struct symbol_block_ops dwarf2_block_frame_base_loclist_funcs |
Definition at line 407 of file dwarf2loc.c.
Referenced by _initialize_dwarf2_read().
const struct symbol_computed_ops dwarf2_locexpr_funcs |
Definition at line 4268 of file dwarf2loc.c.
Referenced by _initialize_dwarf2_read().
const struct symbol_computed_ops dwarf2_loclist_funcs |
Definition at line 4474 of file dwarf2loc.c.
Referenced by _initialize_dwarf2_read().
int dwarf_always_disassemble |
Definition at line 23371 of file dwarf2read.c.
Referenced by locexpr_describe_location_1().
const struct dwarf_expr_context_funcs dwarf_expr_ctx_funcs |
Definition at line 2154 of file dwarf2loc.c.
Referenced by dwarf2_evaluate_loc_desc_full(), dwarf2_locexpr_baton_eval(), and dwarf_expr_push_dwarf_reg_entry_value().
|
static |
Definition at line 1298 of file dwarf2loc.c.
unsigned int entry_values_debug = 0 |
Definition at line 509 of file dwarf2loc.c.
Referenced by dwarf2_tailcall_sniffer_first().
|
static |
Definition at line 2697 of file dwarf2loc.c.
Referenced by dwarf2_loc_desc_needs_frame().
|
static |
Definition at line 2142 of file dwarf2loc.c.