GDB (xrefs)
|
#include "defs.h"
#include "dwarf2/expr.h"
#include "dwarf2.h"
#include "dwarf2/leb.h"
#include "frame.h"
#include "frame-base.h"
#include "frame-unwind.h"
#include "gdbcore.h"
#include "gdbtypes.h"
#include "symtab.h"
#include "objfiles.h"
#include "regcache.h"
#include "value.h"
#include "record.h"
#include "complaints.h"
#include "dwarf2/read.h"
#include "dwarf2/public.h"
#include "ax.h"
#include "dwarf2/loc.h"
#include "dwarf2/frame-tailcall.h"
#include "gdbsupport/gdb_binary_search.h"
#include <unordered_map>
#include <algorithm>
Go to the source code of this file.
Classes | |
struct | dwarf2_cie |
struct | dwarf2_fde |
struct | comp_unit |
struct | dwarf2_frame_ops |
struct | dwarf2_frame_fn_data |
struct | dwarf2_frame_cache |
Macros | |
#define | cfa_exp_len cfa_reg |
#define | DW64_CIE_ID 0xffffffffffffffffULL |
Typedefs | |
typedef std::unordered_map< ULONGEST, dwarf2_cie * > | dwarf2_cie_table |
typedef std::vector< dwarf2_fde * > | dwarf2_fde_table |
Enumerations | |
enum | eh_frame_type { EH_CIE_TYPE_ID = 1 << 0 , EH_FDE_TYPE_ID = 1 << 1 , EH_CIE_OR_FDE_TYPE_ID = EH_CIE_TYPE_ID | EH_FDE_TYPE_ID } |
Functions | |
static struct dwarf2_fde * | dwarf2_frame_find_fde (CORE_ADDR *pc, dwarf2_per_objfile **out_per_objfile) |
static int | dwarf2_frame_adjust_regnum (struct gdbarch *gdbarch, int regnum, int eh_frame_p) |
static ULONGEST | read_encoded_value (struct comp_unit *unit, gdb_byte encoding, int ptr_len, const gdb_byte *buf, unsigned int *bytes_read_ptr, unrelocated_addr func_base) |
static void | dwarf2_restore_rule (struct gdbarch *gdbarch, ULONGEST reg_num, struct dwarf2_frame_state *fs, int eh_frame_p) |
static CORE_ADDR | execute_stack_op (const gdb_byte *exp, ULONGEST len, int addr_size, frame_info_ptr this_frame, CORE_ADDR initial, int initial_in_stack_memory, dwarf2_per_objfile *per_objfile) |
static const gdb_byte * | execute_cfa_program (struct dwarf2_fde *fde, const gdb_byte *insn_ptr, const gdb_byte *insn_end, struct gdbarch *gdbarch, CORE_ADDR pc, struct dwarf2_frame_state *fs, CORE_ADDR text_offset) |
static void | dwarf2_frame_default_init_reg (struct gdbarch *gdbarch, int regnum, struct dwarf2_frame_state_reg *reg, frame_info_ptr this_frame) |
static dwarf2_frame_ops * | get_frame_ops (struct gdbarch *gdbarch) |
void | dwarf2_frame_set_init_reg (struct gdbarch *gdbarch, void(*init_reg)(struct gdbarch *, int, struct dwarf2_frame_state_reg *, frame_info_ptr)) |
static void | dwarf2_frame_init_reg (struct gdbarch *gdbarch, int regnum, struct dwarf2_frame_state_reg *reg, frame_info_ptr this_frame) |
void | dwarf2_frame_set_signal_frame_p (struct gdbarch *gdbarch, int(*signal_frame_p)(struct gdbarch *, frame_info_ptr)) |
static int | dwarf2_frame_signal_frame_p (struct gdbarch *gdbarch, frame_info_ptr this_frame) |
void | dwarf2_frame_set_adjust_regnum (struct gdbarch *gdbarch, int(*adjust_regnum)(struct gdbarch *, int, int)) |
static void | dwarf2_frame_find_quirks (struct dwarf2_frame_state *fs, struct dwarf2_fde *fde) |
int | dwarf2_fetch_cfa_info (struct gdbarch *gdbarch, CORE_ADDR pc, struct dwarf2_per_cu_data *data, int *regnum_out, LONGEST *offset_out, CORE_ADDR *text_offset_out, const gdb_byte **cfa_start_out, const gdb_byte **cfa_end_out) |
static struct dwarf2_frame_cache * | dwarf2_frame_cache (frame_info_ptr this_frame, void **this_cache) |
static enum unwind_stop_reason | dwarf2_frame_unwind_stop_reason (frame_info_ptr this_frame, void **this_cache) |
static void | dwarf2_frame_this_id (frame_info_ptr this_frame, void **this_cache, struct frame_id *this_id) |
static struct value * | dwarf2_frame_prev_register (frame_info_ptr this_frame, void **this_cache, int regnum) |
void * | dwarf2_frame_get_fn_data (frame_info_ptr this_frame, void **this_cache, fn_prev_register cookie) |
void * | dwarf2_frame_allocate_fn_data (frame_info_ptr this_frame, void **this_cache, fn_prev_register cookie, unsigned long size) |
static void | dwarf2_frame_dealloc_cache (frame_info *self, void *this_cache) |
static int | dwarf2_frame_sniffer (const struct frame_unwind *self, frame_info_ptr this_frame, void **this_cache) |
void | dwarf2_append_unwinders (struct gdbarch *gdbarch) |
static CORE_ADDR | dwarf2_frame_base_address (frame_info_ptr this_frame, void **this_cache) |
const struct frame_base * | dwarf2_frame_base_sniffer (frame_info_ptr this_frame) |
CORE_ADDR | dwarf2_frame_cfa (frame_info_ptr this_frame) |
static gdb_byte | encoding_for_size (unsigned int size) |
static struct dwarf2_cie * | find_cie (const dwarf2_cie_table &cie_table, ULONGEST cie_pointer) |
static int | bsearch_fde_cmp (const dwarf2_fde *fde, unrelocated_addr seek_pc) |
static comp_unit * | find_comp_unit (struct objfile *objfile) |
static void | set_comp_unit (struct objfile *objfile, struct comp_unit *unit) |
static void | add_fde (dwarf2_fde_table *fde_table, struct dwarf2_fde *fde) |
static const gdb_byte * | decode_frame_entry (struct gdbarch *gdbarch, struct comp_unit *unit, const gdb_byte *start, int eh_frame_p, dwarf2_cie_table &cie_table, dwarf2_fde_table *fde_table, enum eh_frame_type entry_type) |
static const gdb_byte * | decode_frame_entry_1 (struct gdbarch *gdbarch, struct comp_unit *unit, const gdb_byte *start, int eh_frame_p, dwarf2_cie_table &cie_table, dwarf2_fde_table *fde_table, enum eh_frame_type entry_type) |
static bool | fde_is_less_than (const dwarf2_fde *aa, const dwarf2_fde *bb) |
void | dwarf2_build_frame_info (struct objfile *objfile) |
static void | show_dwarf_unwinders_enabled_p (struct ui_file *file, int from_tty, struct cmd_list_element *c, const char *value) |
void | _initialize_dwarf2_frame () |
Variables | |
bool | dwarf2_frame_unwinders_enabled_p = true |
static const registry< gdbarch >::key< dwarf2_frame_ops > | dwarf2_frame_data |
static const struct frame_unwind | dwarf2_frame_unwind |
static const struct frame_unwind | dwarf2_signal_frame_unwind |
static const struct frame_base | dwarf2_frame_base |
static const registry< bfd >::key< comp_unit > | dwarf2_frame_bfd_data |
static const registry< objfile >::key< comp_unit > | dwarf2_frame_objfile_data |
#define DW64_CIE_ID 0xffffffffffffffffULL |
Definition at line 1678 of file frame.c.
Referenced by decode_frame_entry_1().
typedef std::unordered_map<ULONGEST, dwarf2_cie *> dwarf2_cie_table |
typedef std::vector<dwarf2_fde *> dwarf2_fde_table |
enum eh_frame_type |
void _initialize_dwarf2_frame | ( | ) |
Definition at line 2268 of file frame.c.
Referenced by initialize_all_files().
|
static |
Definition at line 1669 of file frame.c.
References dwarf2_fde::address_range.
Referenced by decode_frame_entry_1().
|
inlinestatic |
Definition at line 1586 of file frame.c.
References dwarf2_fde::end_addr(), and dwarf2_fde::initial_location.
Referenced by dwarf2_frame_find_fde().
|
static |
Definition at line 2007 of file frame.c.
References complaint, decode_frame_entry_1(), comp_unit::dwarf_frame_buffer, comp_unit::dwarf_frame_section, comp_unit::dwarf_frame_size, dwarf2_fde::eh_frame_p, and NONE.
Referenced by decode_frame_entry_1(), and dwarf2_build_frame_info().
|
static |
Definition at line 1702 of file frame.c.
References comp_unit::abfd, add_fde(), dwarf2_cie::addr_size, dwarf2_fde::address_range, dwarf2_cie::augmentation, dwarf2_fde::cie, dwarf2_cie::cie_pointer, dwarf2_cie::code_alignment_factor, dwarf2_cie::data_alignment_factor, decode_frame_entry(), DW64_CIE_ID, dwarf2_frame_adjust_regnum(), comp_unit::dwarf_frame_buffer, comp_unit::dwarf_frame_size, EH_CIE_TYPE_ID, EH_FDE_TYPE_ID, dwarf2_fde::eh_frame_p, dwarf2_cie::encoding, dwarf2_cie::end, dwarf2_fde::end, find_cie(), gdb_read_sleb128(), gdb_read_uleb128(), gdbarch_adjust_dwarf2_addr(), gdbarch_dwarf2_addr_size(), gdbarch_ptr_bit(), dwarf2_cie::initial_instructions, dwarf2_fde::initial_location, dwarf2_fde::instructions, comp_unit::obstack, dwarf2_cie::ptr_size, read_1_byte(), read_4_bytes(), read_8_bytes(), read_encoded_value(), read_initial_length(), dwarf2_cie::return_address_register, dwarf2_cie::saw_z_augmentation, dwarf2_cie::segment_size, dwarf2_cie::signal_frame, dwarf2_cie::unit, and dwarf2_cie::version.
Referenced by decode_frame_entry().
void dwarf2_append_unwinders | ( | struct gdbarch * | gdbarch | ) |
Definition at line 1369 of file frame.c.
References dwarf2_frame_unwind, dwarf2_signal_frame_unwind, and frame_unwind_append_unwinder().
Referenced by aarch64_gdbarch_init(), alpha_dwarf2_init_abi(), arc_gdbarch_init(), arm_gdbarch_init(), bfin_gdbarch_init(), BP_MANIPULATION(), cris_gdbarch_init(), csky_gdbarch_init(), hppabsd_init_abi(), i386_gdbarch_init(), iq2000_gdbarch_init(), loongarch_gdbarch_init(), m68hc11_gdbarch_init(), m68k_gdbarch_init(), microblaze_gdbarch_init(), mips_gdbarch_init(), mn10300_frame_unwind_init(), msp430_gdbarch_init(), nds32_gdbarch_init(), nios2_gdbarch_init(), or1k_gdbarch_init(), riscv_gdbarch_init(), rl78_gdbarch_init(), rs6000_gdbarch_init(), rx_gdbarch_init(), s390_gdbarch_init(), sh_gdbarch_init(), sparc32_linux_init_abi(), sparc64_linux_init_abi(), tic6x_gdbarch_init(), tilegx_gdbarch_init(), v850_gdbarch_init(), xstormy16_gdbarch_init(), and xtensa_gdbarch_init().
void dwarf2_build_frame_info | ( | struct objfile * | objfile | ) |
Definition at line 2120 of file frame.c.
References objfile::arch(), decode_frame_entry(), DWARF2_DEBUG_FRAME, DWARF2_EH_FRAME, dwarf2_get_section_info(), EH_CIE_OR_FDE_TYPE_ID, fde_is_less_than(), dwarf2_fde::initial_location, objfile_name(), objfile::separate_debug_objfile_backlink, and set_comp_unit().
Referenced by dwarf2_frame_find_fde(), and macho_symfile_read().
int dwarf2_fetch_cfa_info | ( | struct gdbarch * | gdbarch, |
CORE_ADDR | pc, | ||
struct dwarf2_per_cu_data * | data, | ||
int * | regnum_out, | ||
LONGEST * | offset_out, | ||
CORE_ADDR * | text_offset_out, | ||
const gdb_byte ** | cfa_start_out, | ||
const gdb_byte ** | cfa_end_out ) |
Definition at line 779 of file frame.c.
References dwarf2_frame_state::armcc_cfa_offsets_reversed, CFA_EXP, CFA_REG_OFFSET, dwarf2_fde::cie, dwarf2_frame_find_fde(), dwarf2_frame_find_quirks(), dwarf_reg_to_regnum_or_error(), dwarf2_cie::end, dwarf2_fde::end, execute_cfa_program(), dwarf2_cie::initial_instructions, dwarf2_fde::instructions, dwarf2_per_objfile::objfile, regnum, and objfile::text_section_offset().
Referenced by do_compile_dwarf_expr_to_c(), and dwarf2_compile_expr_to_ax().
|
static |
Definition at line 732 of file frame.c.
References dwarf2_frame_ops::adjust_regnum, get_frame_ops(), and regnum.
Referenced by decode_frame_entry_1(), dwarf2_restore_rule(), and execute_cfa_program().
void * dwarf2_frame_allocate_fn_data | ( | frame_info_ptr | this_frame, |
void ** | this_cache, | ||
fn_prev_register | cookie, | ||
unsigned long | size ) |
Definition at line 1271 of file frame.c.
References dwarf2_frame_fn_data::cookie, dwarf2_frame_fn_data::data, dwarf2_frame_cache(), dwarf2_frame_get_fn_data(), dwarf2_frame_cache::fn_data, FRAME_OBSTACK_ZALLOC, frame_obstack_zalloc(), dwarf2_frame_fn_data::next, and size.
Referenced by arm_dwarf2_prev_register().
|
static |
Definition at line 1383 of file frame.c.
References dwarf2_frame_cache::cfa, and dwarf2_frame_cache().
const struct frame_base * dwarf2_frame_base_sniffer | ( | frame_info_ptr | this_frame | ) |
Definition at line 1400 of file frame.c.
References dwarf2_frame_base, dwarf2_frame_find_fde(), and get_frame_address_in_block().
Referenced by alpha_dwarf2_init_abi(), microblaze_gdbarch_init(), mips_gdbarch_init(), and s390_gdbarch_init().
|
static |
Definition at line 893 of file frame.c.
References dwarf2_cie::addr_size, dwarf2_frame_cache::addr_size, dwarf2_frame_state::armcc_cfa_offsets_reversed, dwarf2_frame_cache::cfa, CFA_EXP, CFA_REG_OFFSET, dwarf2_fde::cie, complaint, dwarf2_frame_find_fde(), dwarf2_frame_find_quirks(), dwarf2_frame_init_reg(), DWARF2_FRAME_REG_RA, DWARF2_FRAME_REG_RA_OFFSET, DWARF2_FRAME_REG_SAME_VALUE, DWARF2_FRAME_REG_SAVED_REG, DWARF2_FRAME_REG_UNDEFINED, DWARF2_FRAME_REG_UNSPECIFIED, dwarf2_tailcall_sniffer_first(), dwarf_reg_to_regnum(), dwarf2_cie::end, dwarf2_fde::end, dwarf2_fde::end_addr(), execute_cfa_program(), execute_stack_op(), FRAME_OBSTACK_CALLOC, FRAME_OBSTACK_ZALLOC, gdbarch_num_cooked_regs(), gdbarch_register_name(), gdbarch_sp_regnum(), get_frame_address_in_block(), get_frame_arch(), get_frame_func_if_available(), dwarf2_frame_state_reg::how, dwarf2_cie::initial_instructions, dwarf2_fde::initial_location, dwarf2_fde::instructions, dwarf2_frame_state_reg::loc, dwarf2_per_objfile::objfile, paddress(), dwarf2_frame_state::pc, dwarf2_frame_cache::per_objfile, read_addr_from_reg(), dwarf2_frame_cache::reg, dwarf2_frame_state_reg::reg, regnum, dwarf2_frame_state::retaddr_column, dwarf2_frame_cache::retaddr_reg, dwarf2_frame_cache::tailcall_cache, objfile::text_section_offset(), dwarf2_frame_cache::unavailable_retaddr, and dwarf2_frame_cache::undefined_retaddr.
Referenced by dwarf2_frame_allocate_fn_data(), dwarf2_frame_base_address(), dwarf2_frame_dealloc_cache(), dwarf2_frame_get_fn_data(), dwarf2_frame_prev_register(), dwarf2_frame_this_id(), and dwarf2_frame_unwind_stop_reason().
CORE_ADDR dwarf2_frame_cfa | ( | frame_info_ptr | this_frame | ) |
Definition at line 1415 of file frame.c.
References FID_STACK_VALID, frame_unwinder_is(), get_frame_base(), get_frame_id(), get_frame_type(), get_frame_unwind_stop_reason(), get_prev_frame(), INLINE_FRAME, record_btrace_frame_unwind, and record_btrace_tailcall_frame_unwind.
Referenced by dwarf2_tailcall_prev_register_first(), and dwarf_expr_context::execute_stack_op().
|
static |
Definition at line 1296 of file frame.c.
References frame_unwind::dealloc_cache, dwarf2_frame_cache(), dwarf2_tailcall_frame_unwind, and dwarf2_frame_cache::tailcall_cache.
|
static |
Definition at line 626 of file frame.c.
References DWARF2_FRAME_REG_CFA, DWARF2_FRAME_REG_RA, gdbarch_pc_regnum(), gdbarch_sp_regnum(), dwarf2_frame_state_reg::how, and regnum.
|
static |
Definition at line 1624 of file frame.c.
References bsearch_fde_cmp(), current_program_space, dwarf2_build_frame_info(), comp_unit::fde_table, find_comp_unit(), get_dwarf2_per_objfile(), objfile::obfd, program_space::objfiles(), objfile::section_offsets, and objfile::text_section_offset().
Referenced by dwarf2_fetch_cfa_info(), dwarf2_frame_base_sniffer(), dwarf2_frame_cache(), and dwarf2_frame_sniffer().
|
static |
Definition at line 743 of file frame.c.
References dwarf2_frame_state::armcc_cfa_offsets_reversed, dwarf2_frame_state::armcc_cfa_offsets_sf, dwarf2_cie::augmentation, dwarf2_fde::cie, find_pc_compunit_symtab(), dwarf2_frame_state::pc, compunit_symtab::producer(), producer_is_realview(), and dwarf2_cie::version.
Referenced by dwarf2_fetch_cfa_info(), and dwarf2_frame_cache().
void * dwarf2_frame_get_fn_data | ( | frame_info_ptr | this_frame, |
void ** | this_cache, | ||
fn_prev_register | cookie ) |
Definition at line 1253 of file frame.c.
References dwarf2_frame_fn_data::cookie, dwarf2_frame_fn_data::data, dwarf2_frame_cache(), dwarf2_frame_cache::fn_data, and dwarf2_frame_fn_data::next.
Referenced by arm_dwarf2_prev_register(), and dwarf2_frame_allocate_fn_data().
|
static |
Definition at line 679 of file frame.c.
References get_frame_ops(), dwarf2_frame_ops::init_reg, and regnum.
Referenced by dwarf2_frame_cache().
|
static |
Definition at line 1154 of file frame.c.
References dwarf2_frame_cache::addr_size, dwarf2_frame_cache::cfa, dwarf2_frame_cache(), DWARF2_FRAME_REG_CFA, DWARF2_FRAME_REG_CFA_OFFSET, DWARF2_FRAME_REG_FN, DWARF2_FRAME_REG_RA_OFFSET, DWARF2_FRAME_REG_SAME_VALUE, DWARF2_FRAME_REG_SAVED_EXP, DWARF2_FRAME_REG_SAVED_OFFSET, DWARF2_FRAME_REG_SAVED_REG, DWARF2_FRAME_REG_SAVED_VAL_EXP, DWARF2_FRAME_REG_SAVED_VAL_OFFSET, DWARF2_FRAME_REG_UNDEFINED, DWARF2_FRAME_REG_UNSPECIFIED, dwarf2_tailcall_prev_register_first(), dwarf_reg_to_regnum_or_error(), execute_stack_op(), dwarf2_frame_state_reg::exp, dwarf2_frame_state_reg::fn, frame_unwind_got_address(), frame_unwind_got_constant(), frame_unwind_got_memory(), frame_unwind_got_optimized(), frame_unwind_got_register(), get_frame_arch(), get_frame_register_unsigned(), dwarf2_frame_state_reg::how, dwarf2_frame_state_reg::len, dwarf2_frame_state_reg::loc, dwarf2_frame_state_reg::offset, dwarf2_frame_cache::per_objfile, dwarf2_frame_cache::reg, dwarf2_frame_state_reg::reg, regnum, dwarf2_frame_cache::retaddr_reg, dwarf2_frame_state_reg::start, and dwarf2_frame_cache::tailcall_cache.
void dwarf2_frame_set_adjust_regnum | ( | struct gdbarch * | gdbarch, |
int(*)(struct gdbarch *, int, int) | adjust_regnum ) |
Definition at line 719 of file frame.c.
References dwarf2_frame_ops::adjust_regnum, and get_frame_ops().
Referenced by rs6000_gdbarch_init(), and s390_gdbarch_init().
void dwarf2_frame_set_init_reg | ( | struct gdbarch * | gdbarch, |
void(*)(struct gdbarch *, int, struct dwarf2_frame_state_reg *, frame_info_ptr) | init_reg ) |
Definition at line 666 of file frame.c.
References get_frame_ops(), and dwarf2_frame_ops::init_reg.
Referenced by aarch64_gdbarch_init(), arc_gdbarch_init(), arm_gdbarch_init(), cris_gdbarch_init(), csky_gdbarch_init(), hppabsd_init_abi(), rs6000_gdbarch_init(), s390_gdbarch_init(), sh_gdbarch_init(), sparc32_gdbarch_init(), sparc64_init_abi(), and tic6x_gdbarch_init().
void dwarf2_frame_set_signal_frame_p | ( | struct gdbarch * | gdbarch, |
int(*)(struct gdbarch *, frame_info_ptr) | signal_frame_p ) |
Definition at line 692 of file frame.c.
References get_frame_ops(), and dwarf2_frame_ops::signal_frame_p.
Referenced by i386_darwin_init_abi(), i386_linux_init_abi(), and x86_darwin_init_abi_64().
|
static |
Definition at line 705 of file frame.c.
References get_frame_ops(), and dwarf2_frame_ops::signal_frame_p.
Referenced by dwarf2_frame_sniffer().
|
static |
Definition at line 1306 of file frame.c.
References dwarf2_fde::cie, dwarf2_frame_find_fde(), dwarf2_frame_signal_frame_p(), dwarf2_frame_unwinders_enabled_p, get_frame_address_in_block(), get_frame_arch(), NORMAL_FRAME, dwarf2_cie::signal_frame, SIGTRAMP_FRAME, and frame_unwind::type.
|
static |
Definition at line 1139 of file frame.c.
References dwarf2_frame_cache::cfa, dwarf2_frame_cache(), frame_id_build(), frame_id_build_unavailable_stack(), get_frame_func(), dwarf2_frame_cache::unavailable_retaddr, and dwarf2_frame_cache::undefined_retaddr.
|
static |
Definition at line 1123 of file frame.c.
References dwarf2_frame_cache(), dwarf2_frame_cache::unavailable_retaddr, and dwarf2_frame_cache::undefined_retaddr.
|
static |
Definition at line 206 of file frame.c.
References complaint, dwarf2_frame_adjust_regnum(), DWARF2_FRAME_REG_UNSPECIFIED, dwarf_reg_to_regnum(), dwarf2_fde::eh_frame_p, gdbarch_register_name(), paddress(), dwarf2_frame_state::pc, and regnum.
Referenced by execute_cfa_program().
|
static |
|
static |
Definition at line 257 of file frame.c.
References dwarf2_frame_state::armcc_cfa_offsets_sf, CFA_EXP, CFA_REG_OFFSET, dwarf2_fde::cie, dwarf2_frame_state::code_align, complaint, dwarf2_frame_state::data_align, dwarf2_frame_adjust_regnum(), DWARF2_FRAME_REG_SAME_VALUE, DWARF2_FRAME_REG_SAVED_EXP, DWARF2_FRAME_REG_SAVED_OFFSET, DWARF2_FRAME_REG_SAVED_REG, DWARF2_FRAME_REG_SAVED_VAL_EXP, DWARF2_FRAME_REG_SAVED_VAL_OFFSET, DWARF2_FRAME_REG_UNDEFINED, dwarf2_frame_state_reg_info::dwarf2_frame_state_reg_info(), dwarf2_restore_rule(), dwarf2_fde::eh_frame_p, dwarf2_cie::encoding, extract_unsigned_integer(), gdbarch_byte_order(), gdbarch_execute_dwarf_cfa_vendor_op(), dwarf2_fde::initial_location, paddress(), dwarf2_frame_state::pc, dwarf2_cie::ptr_size, read_encoded_value(), dwarf2_frame_state_reg_info::reg, safe_read_sleb128(), safe_read_uleb128(), and dwarf2_cie::unit.
Referenced by dwarf2_fetch_cfa_info(), and dwarf2_frame_cache().
|
static |
Definition at line 235 of file frame.c.
References value::address, dwarf_expr_context::evaluate(), value::lval(), lval_memory, dwarf_expr_context::push_address(), and value_as_address().
Referenced by dwarf2_frame_cache(), and dwarf2_frame_prev_register().
|
static |
Definition at line 2102 of file frame.c.
References dwarf2_fde::address_range, dwarf2_fde::eh_frame_p, and dwarf2_fde::initial_location.
Referenced by dwarf2_build_frame_info().
|
static |
Definition at line 1577 of file frame.c.
References dwarf2_cie::cie_pointer.
Referenced by decode_frame_entry_1().
Definition at line 1598 of file frame.c.
References dwarf2_frame_bfd_data, dwarf2_frame_objfile_data, gdb_bfd_requires_relocations(), registry< T >::get(), and objfile::obfd.
Referenced by dwarf2_frame_find_fde().
|
static |
Definition at line 614 of file frame.c.
References dwarf2_frame_data, and registry< T >::get().
Referenced by dwarf2_frame_adjust_regnum(), dwarf2_frame_init_reg(), dwarf2_frame_set_adjust_regnum(), dwarf2_frame_set_init_reg(), dwarf2_frame_set_signal_frame_p(), and dwarf2_frame_signal_frame_p().
|
static |
Definition at line 1480 of file frame.c.
References comp_unit::abfd, comp_unit::dbase, comp_unit::dwarf_frame_buffer, comp_unit::dwarf_frame_section, encoding_for_size(), safe_read_sleb128(), safe_read_uleb128(), comp_unit::tbase, and value.
Referenced by decode_frame_entry_1(), and execute_cfa_program().
Definition at line 1611 of file frame.c.
References dwarf2_frame_bfd_data, dwarf2_frame_objfile_data, gdb_bfd_requires_relocations(), objfile::obfd, registry< T >::set(), and dwarf2_cie::unit.
Referenced by dwarf2_build_frame_info().
|
static |
Definition at line 2257 of file frame.c.
References gdb_printf().
|
static |
Definition at line 1391 of file frame.c.
Referenced by dwarf2_frame_base_sniffer().
Definition at line 1439 of file frame.c.
Referenced by find_comp_unit(), and set_comp_unit().
|
static |
Definition at line 610 of file frame.c.
Referenced by get_frame_ops().
Definition at line 1444 of file frame.c.
Referenced by find_comp_unit(), and set_comp_unit().
|
static |
Definition at line 1340 of file frame.c.
Referenced by dwarf2_append_unwinders().
bool dwarf2_frame_unwinders_enabled_p = true |
Definition at line 190 of file frame.c.
Referenced by dwarf2_frame_sniffer(), and tailcall_frame_sniffer().
|
static |
Definition at line 1352 of file frame.c.
Referenced by dwarf2_append_unwinders().