GDB (xrefs)
|
#include "defs.h"
#include "frame.h"
#include "frame-unwind.h"
#include "dummy-frame.h"
#include "inline-frame.h"
#include "value.h"
#include "regcache.h"
#include "gdbsupport/gdb_obstack.h"
#include "target.h"
#include "gdbarch.h"
#include "dwarf2/frame-tailcall.h"
#include "cli/cli-cmds.h"
Go to the source code of this file.
Classes | |
struct | frame_unwind_table_entry |
struct | frame_unwind_table |
Variables | |
static const registry< gdbarch >::key< struct frame_unwind_table > | frame_unwind_data |
void _initialize_frame_unwind | ( | ) |
Definition at line 371 of file frame-unwind.c.
Referenced by initialize_all_files().
|
static |
Definition at line 53 of file frame-unwind.c.
References frame_unwind_table_entry::unwinder.
Referenced by get_frame_unwind_table().
int default_frame_sniffer | ( | const struct frame_unwind * | self, |
frame_info_ptr | this_frame, | ||
void ** | this_prologue_cache ) |
Definition at line 218 of file frame-unwind.c.
enum unwind_stop_reason default_frame_unwind_stop_reason | ( | frame_info_ptr | this_frame, |
void ** | this_cache ) |
Definition at line 228 of file frame-unwind.c.
References get_frame_id(), and outer_frame_id.
Referenced by pyuw_on_new_gdbarch(), and tramp_frame_prepend_unwinder().
CORE_ADDR default_unwind_pc | ( | struct gdbarch * | gdbarch, |
frame_info_ptr | next_frame ) |
Definition at line 242 of file frame-unwind.c.
References frame_unwind_register_unsigned(), gdbarch_addr_bits_remove(), gdbarch_pc_regnum(), and pc_regnum.
CORE_ADDR default_unwind_sp | ( | struct gdbarch * | gdbarch, |
frame_info_ptr | next_frame ) |
Definition at line 253 of file frame-unwind.c.
References frame_unwind_register_unsigned(), gdbarch_sp_regnum(), and sp_regnum.
void frame_unwind_append_unwinder | ( | struct gdbarch * | gdbarch, |
const struct frame_unwind * | unwinder ) |
Definition at line 108 of file frame-unwind.c.
References GDBARCH_OBSTACK_ZALLOC, get_frame_unwind_table(), frame_unwind_table_entry::next, frame_unwind_table::osabi_head, and frame_unwind_table_entry::unwinder.
Referenced by aarch64_gdbarch_init(), alpha_gdbarch_init(), alpha_mdebug_init_abi(), amd64_init_abi(), amd64_windows_init_abi_common(), arc_gdbarch_init(), arm_gdbarch_init(), avr_gdbarch_init(), bfin_gdbarch_init(), BP_MANIPULATION(), bpf_gdbarch_init(), cris_gdbarch_init(), csky_gdbarch_init(), dwarf2_append_unwinders(), frv_gdbarch_init(), frv_linux_init_abi(), ft32_gdbarch_init(), hppa_gdbarch_init(), hppa_linux_init_abi(), i386_gdbarch_init(), ia64_gdbarch_init(), iq2000_gdbarch_init(), lm32_gdbarch_init(), loongarch_gdbarch_init(), m32c_gdbarch_init(), m32r_gdbarch_init(), m32r_linux_init_abi(), m68hc11_gdbarch_init(), m68k_gdbarch_init(), m68k_linux_init_abi(), mep_gdbarch_init(), microblaze_gdbarch_init(), mips_gdbarch_init(), mips_sde_init_abi(), mn10300_frame_unwind_init(), moxie_gdbarch_init(), msp430_gdbarch_init(), nds32_gdbarch_init(), nios2_gdbarch_init(), or1k_gdbarch_init(), ppcfbsd_init_abi(), ppcobsd_init_abi(), riscv_gdbarch_init(), rl78_gdbarch_init(), rs6000_aix_init_osabi(), rs6000_gdbarch_init(), rx_gdbarch_init(), s12z_gdbarch_init(), s390_gdbarch_init(), s390_linux_init_abi_any(), sh_gdbarch_init(), sparc32_gdbarch_init(), sparc32_sol2_init_abi(), sparc32nbsd_init_abi(), sparc32obsd_init_abi(), sparc64_init_abi(), sparc64_sol2_init_abi(), sparc64fbsd_init_abi(), sparc64nbsd_init_abi(), sparc64obsd_init_abi(), tic6x_gdbarch_init(), tilegx_gdbarch_init(), v850_gdbarch_init(), vax_gdbarch_init(), xstormy16_gdbarch_init(), xtensa_gdbarch_init(), and z80_gdbarch_init().
void frame_unwind_find_by_frame | ( | frame_info_ptr | this_frame, |
void ** | this_cache ) |
Definition at line 185 of file frame-unwind.c.
References frame_debug_printf, frame_relative_level(), FRAME_SCOPED_DEBUG_ENTER_EXIT, frame_unwind_try_unwinder(), get_frame_arch(), get_frame_unwind_table(), frame_unwind_table::list, target_get_tailcall_unwinder(), and target_get_unwinder().
Referenced by compute_frame_id(), create_new_frame(), frame_unwind_arch(), frame_unwind_register_value(), frame_unwinder_is(), get_frame_type(), and get_prev_frame_always_1().
struct value * frame_unwind_got_address | ( | frame_info_ptr | frame, |
int | regnum, | ||
CORE_ADDR | addr ) |
Definition at line 330 of file frame-unwind.c.
References value::contents_writeable(), frame_unwind_arch(), not_lval, pack_long(), register_type(), regnum, and value::zero().
Referenced by dwarf2_frame_prev_register(), dwarf2_tailcall_prev_register_first(), and record_btrace_frame_prev_register().
struct value * frame_unwind_got_bytes | ( | frame_info_ptr | frame, |
int | regnum, | ||
const gdb_byte * | buf ) |
Definition at line 314 of file frame-unwind.c.
References value::contents_raw(), frame_unwind_arch(), not_lval, register_size(), register_type(), regnum, and value::zero().
Referenced by jit_frame_prev_register(), libunwind_frame_prev_register(), pyuw_prev_register(), and trad_frame_get_prev_register().
struct value * frame_unwind_got_constant | ( | frame_info_ptr | frame, |
int | regnum, | ||
ULONGEST | val ) |
Definition at line 300 of file frame-unwind.c.
References value::contents_writeable(), frame_unwind_arch(), gdbarch_byte_order(), not_lval, register_size(), register_type(), regnum, store_unsigned_integer(), and value::zero().
Referenced by aarch64_dwarf2_prev_register(), aarch64_prologue_prev_register(), amd64_frame_prev_register(), amd64_windows_frame_prev_register(), arc_frame_prev_register(), arm_dwarf2_prev_register(), arm_m_exception_prev_register(), arm_prologue_prev_register(), avr_frame_prev_register(), bfin_frame_prev_register(), csky_stub_prev_register(), dwarf2_frame_prev_register(), ft32_frame_prev_register(), h8300_frame_prev_register(), hppa_frame_prev_register_helper(), i386_frame_prev_register(), ia64_frame_prev_register(), ia64_sigtramp_frame_prev_register(), iq2000_frame_prev_register(), libunwind_frame_prev_register(), m32c_prev_register(), m68hc11_frame_prev_register(), m68k_frame_prev_register(), mep_frame_prev_register(), mn10300_frame_prev_register(), moxie_frame_prev_register(), msp430_prev_register(), nds32_epilogue_frame_prev_register(), nds32_frame_prev_register(), nios2_frame_prev_register(), rl78_prev_register(), rx_frame_prev_register(), sh_frame_prev_register(), sparc32_frame_prev_register(), sparc64_frame_prev_register(), tic6x_frame_prev_register(), trad_frame_get_prev_register(), xstormy16_frame_prev_register(), xtensa_frame_prev_register(), and z80_frame_prev_register().
struct value * frame_unwind_got_memory | ( | frame_info_ptr | frame, |
int | regnum, | ||
CORE_ADDR | addr ) |
Definition at line 287 of file frame-unwind.c.
References frame_unwind_arch(), register_type(), regnum, value::set_stack(), and value_at_lazy().
Referenced by alpha_sigtramp_frame_prev_register(), amd64_frame_prev_register(), amd64_windows_frame_prev_register(), bfin_frame_prev_register(), dwarf2_frame_prev_register(), ft32_frame_prev_register(), h8300_frame_prev_register(), i386_frame_prev_register(), ia64_frame_prev_register(), ia64_sigtramp_frame_prev_register(), iq2000_frame_prev_register(), libunwind_frame_prev_register(), m32c_prev_register(), m68k_frame_prev_register(), mep_frame_prev_register(), mn10300_frame_prev_register(), moxie_frame_prev_register(), msp430_prev_register(), nds32_epilogue_frame_prev_register(), nds32_frame_prev_register(), nios2_frame_prev_register(), rl78_prev_register(), rx_frame_prev_register(), sh_frame_prev_register(), sparc32_frame_prev_register(), sparc64_frame_prev_register(), tic6x_frame_prev_register(), trad_frame_get_prev_register(), xstormy16_frame_prev_register(), and xtensa_frame_prev_register().
struct value * frame_unwind_got_optimized | ( | frame_info_ptr | frame, |
int | regnum ) |
Definition at line 265 of file frame-unwind.c.
References value::allocate_optimized_out(), frame_unwind_arch(), register_type(), and regnum.
Referenced by avr_frame_prev_register(), dwarf2_frame_prev_register(), jit_frame_prev_register(), pyuw_prev_register(), trad_frame_get_prev_register(), and z80_frame_prev_register().
struct value * frame_unwind_got_register | ( | frame_info_ptr | frame, |
int | regnum, | ||
int | new_regnum ) |
Definition at line 277 of file frame-unwind.c.
References value_of_register_lazy().
Referenced by alpha_sigtramp_frame_prev_register(), amd64_frame_prev_register(), amd64_windows_frame_prev_register(), bfin_frame_prev_register(), bpf_frame_prev_register(), dwarf2_frame_prev_register(), ft32_frame_prev_register(), h8300_frame_prev_register(), i386_frame_prev_register(), ia64_frame_prev_register(), iq2000_frame_prev_register(), libunwind_frame_prev_register(), m32c_prev_register(), m68k_frame_prev_register(), mep_frame_prev_register(), mn10300_frame_prev_register(), moxie_frame_prev_register(), msp430_prev_register(), nds32_epilogue_frame_prev_register(), nds32_frame_prev_register(), nios2_frame_prev_register(), rl78_prev_register(), rx_frame_prev_register(), sh_frame_prev_register(), sparc32_frame_prev_register(), sparc64_frame_prev_register(), tailcall_frame_prev_register(), tic6x_frame_prev_register(), trad_frame_get_prev_register(), xstormy16_frame_prev_register(), and xtensa_frame_prev_register().
void frame_unwind_prepend_unwinder | ( | struct gdbarch * | gdbarch, |
const struct frame_unwind * | unwinder ) |
Definition at line 94 of file frame-unwind.c.
References GDBARCH_OBSTACK_ZALLOC, get_frame_unwind_table(), frame_unwind_table::osabi_head, and frame_unwind_table_entry::unwinder.
Referenced by amd64_init_abi(), amd64obsd_init_abi(), i386obsd_init_abi(), jit_prepend_unwinder(), pyuw_on_new_gdbarch(), and tramp_frame_prepend_unwinder().
|
static |
Definition at line 125 of file frame-unwind.c.
References frame_cleanup_after_sniffer(), frame_debug_printf, frame_prepare_for_sniffer(), get_frame_cache_generation(), frame_unwind::name, frame_unwind::sniffer, and frame_unwind_table_entry::unwinder.
Referenced by frame_unwind_find_by_frame().
|
static |
Definition at line 62 of file frame-unwind.c.
References add_unwinder(), dummy_frame_unwind, dwarf2_tailcall_frame_unwind, frame_unwind_data, gdbarch_obstack(), registry< T >::get(), inline_frame_unwind, frame_unwind_table::list, frame_unwind_table::osabi_head, and registry< T >::set().
Referenced by frame_unwind_append_unwinder(), frame_unwind_find_by_frame(), frame_unwind_prepend_unwinder(), and maintenance_info_frame_unwinders().
|
static |
Definition at line 345 of file frame-unwind.c.
References current_uiout, ui_out::field_string(), frame_type_str(), get_frame_unwind_table(), frame_unwind_table::list, name, ui_out::table_body(), ui_out::table_header(), target_gdbarch(), ui_out::text(), and ui_left.
|
static |
Definition at line 47 of file frame-unwind.c.
Referenced by get_frame_unwind_table().