GDB (xrefs)
Loading...
Searching...
No Matches
Classes | Macros | Typedefs | Enumerations | Functions | Variables
frame.c File Reference
#include "defs.h"
#include "frame.h"
#include "target.h"
#include "value.h"
#include "inferior.h"
#include "regcache.h"
#include "user-regs.h"
#include "gdbsupport/gdb_obstack.h"
#include "dummy-frame.h"
#include "sentinel-frame.h"
#include "gdbcore.h"
#include "annotate.h"
#include "language.h"
#include "frame-unwind.h"
#include "frame-base.h"
#include "command.h"
#include "gdbcmd.h"
#include "observable.h"
#include "objfiles.h"
#include "gdbthread.h"
#include "block.h"
#include "inline-frame.h"
#include "tracepoint.h"
#include "hashtab.h"
#include "valprint.h"
#include "cli/cli-option.h"
#include "dwarf2/loc.h"
#include "unwind_stop_reasons.def"

Go to the source code of this file.

Classes

struct  frame_info
 

Macros

#define SET(name, description)    case name: return _(description);
 
#define SET(name, description)    case name: return #name;
 

Typedefs

using boolean_option_def = gdb::option::boolean_option_def<set_backtrace_options>
 

Enumerations

enum  cached_copy_status { CC_UNKNOWN , CC_VALUE , CC_NOT_SAVED , CC_UNAVAILABLE }
 
enum class  frame_id_status { NOT_COMPUTED = 0 , COMPUTING , COMPUTED }
 

Functions

unsigned int get_frame_cache_generation ()
 
static frame_info_ptr get_prev_frame_raw (frame_info_ptr this_frame)
 
static const char * frame_stop_reason_symbol_string (enum unwind_stop_reason reason)
 
static frame_info_ptr create_new_frame (frame_id id)
 
void set_frame_previous_pc_masked (frame_info_ptr frame)
 
bool get_frame_pc_masked (frame_info_ptr frame)
 
static hashval_t frame_addr_hash (const void *ap)
 
static int frame_addr_hash_eq (const void *a, const void *b)
 
static void frame_info_del (frame_info *frame)
 
static void frame_stash_create (void)
 
static bool frame_stash_add (frame_info *frame)
 
static frame_info_ptr frame_stash_find (struct frame_id id)
 
static void frame_stash_invalidate (void)
 
static void show_frame_debug (struct ui_file *file, int from_tty, struct cmd_list_element *c, const char *value)
 
static void show_backtrace_past_main (struct ui_file *file, int from_tty, struct cmd_list_element *c, const char *value)
 
static void show_backtrace_past_entry (struct ui_file *file, int from_tty, struct cmd_list_element *c, const char *value)
 
static void show_backtrace_limit (struct ui_file *file, int from_tty, struct cmd_list_element *c, const char *value)
 
const char * frame_type_str (frame_type type)
 
static frame_info_ptr skip_artificial_frames (frame_info_ptr frame)
 
frame_info_ptr skip_unwritable_frames (frame_info_ptr frame)
 
frame_info_ptr skip_tailcall_frames (frame_info_ptr frame)
 
static void compute_frame_id (frame_info_ptr fi)
 
struct frame_id get_frame_id (frame_info_ptr fi)
 
struct frame_id get_stack_frame_id (frame_info_ptr next_frame)
 
struct frame_id frame_unwind_caller_id (frame_info_ptr next_frame)
 
struct frame_id frame_id_build_special (CORE_ADDR stack_addr, CORE_ADDR code_addr, CORE_ADDR special_addr)
 
struct frame_id frame_id_build_unavailable_stack (CORE_ADDR code_addr)
 
struct frame_id frame_id_build_unavailable_stack_special (CORE_ADDR code_addr, CORE_ADDR special_addr)
 
struct frame_id frame_id_build (CORE_ADDR stack_addr, CORE_ADDR code_addr)
 
struct frame_id frame_id_build_wild (CORE_ADDR stack_addr)
 
frame_id frame_id_build_sentinel (CORE_ADDR stack_addr, CORE_ADDR code_addr)
 
bool frame_id_p (frame_id l)
 
bool frame_id_artificial_p (frame_id l)
 
static bool frame_id_inner (struct gdbarch *gdbarch, struct frame_id l, struct frame_id r)
 
frame_info_ptr frame_find_by_id (struct frame_id id)
 
static CORE_ADDR frame_unwind_pc (frame_info_ptr this_frame)
 
CORE_ADDR frame_unwind_caller_pc (frame_info_ptr this_frame)
 
bool get_frame_func_if_available (frame_info_ptr this_frame, CORE_ADDR *pc)
 
CORE_ADDR get_frame_func (frame_info_ptr this_frame)
 
std::unique_ptr< readonly_detached_regcacheframe_save_as_regcache (frame_info_ptr this_frame)
 
void frame_pop (frame_info_ptr this_frame)
 
void frame_register_unwind (frame_info_ptr next_frame, int regnum, int *optimizedp, int *unavailablep, enum lval_type *lvalp, CORE_ADDR *addrp, int *realnump, gdb_byte *bufferp)
 
static void frame_register (frame_info_ptr frame, int regnum, int *optimizedp, int *unavailablep, enum lval_type *lvalp, CORE_ADDR *addrp, int *realnump, gdb_byte *bufferp)
 
void frame_unwind_register (frame_info_ptr next_frame, int regnum, gdb_byte *buf)
 
void get_frame_register (frame_info_ptr frame, int regnum, gdb_byte *buf)
 
struct valueframe_unwind_register_value (frame_info_ptr next_frame, int regnum)
 
struct valueget_frame_register_value (frame_info_ptr frame, int regnum)
 
LONGEST frame_unwind_register_signed (frame_info_ptr next_frame, int regnum)
 
LONGEST get_frame_register_signed (frame_info_ptr frame, int regnum)
 
ULONGEST frame_unwind_register_unsigned (frame_info_ptr next_frame, int regnum)
 
ULONGEST get_frame_register_unsigned (frame_info_ptr frame, int regnum)
 
bool read_frame_register_unsigned (frame_info_ptr frame, int regnum, ULONGEST *val)
 
void put_frame_register (frame_info_ptr frame, int regnum, const gdb_byte *buf)
 
bool deprecated_frame_register_read (frame_info_ptr frame, int regnum, gdb_byte *myaddr)
 
bool get_frame_register_bytes (frame_info_ptr frame, int regnum, CORE_ADDR offset, gdb::array_view< gdb_byte > buffer, int *optimizedp, int *unavailablep)
 
void put_frame_register_bytes (frame_info_ptr frame, int regnum, CORE_ADDR offset, gdb::array_view< const gdb_byte > buffer)
 
static frame_info_ptr create_sentinel_frame (struct program_space *pspace, struct regcache *regcache, CORE_ADDR stack_addr, CORE_ADDR code_addr)
 
void * frame_obstack_zalloc (unsigned long size)
 
static frame_info_ptr get_prev_frame_always_1 (frame_info_ptr this_frame)
 
frame_info_ptr get_current_frame (void)
 
void save_selected_frame (frame_id *frame_id, int *frame_level) noexcept
 
void restore_selected_frame (frame_id frame_id, int frame_level) noexcept
 
static void lookup_selected_frame (struct frame_id a_frame_id, int frame_level)
 
bool has_stack_frames ()
 
frame_info_ptr get_selected_frame (const char *message)
 
frame_info_ptr deprecated_safe_get_selected_frame (void)
 
static void invalidate_selected_frame ()
 
void select_frame (frame_info_ptr fi)
 
frame_info_ptr create_new_frame (CORE_ADDR stack, CORE_ADDR pc)
 
frame_info_ptr get_next_frame (frame_info_ptr this_frame)
 
frame_info_ptr get_next_frame_sentinel_okay (frame_info_ptr this_frame)
 
static void frame_observer_target_changed (struct target_ops *target)
 
void reinit_frame_cache (void)
 
static void frame_register_unwind_location (frame_info_ptr this_frame, int regnum, int *optimizedp, enum lval_type *lvalp, CORE_ADDR *addrp, int *realnump)
 
static frame_info_ptr get_prev_frame_maybe_check_cycle (frame_info_ptr this_frame)
 
frame_info_ptr get_prev_frame_always (frame_info_ptr this_frame)
 
static void frame_debug_got_null_frame (frame_info_ptr this_frame, const char *reason)
 
static bool inside_main_func (frame_info_ptr this_frame)
 
static bool inside_entry_func (frame_info_ptr this_frame)
 
frame_info_ptr get_prev_frame (frame_info_ptr this_frame)
 
CORE_ADDR get_frame_pc (frame_info_ptr frame)
 
bool get_frame_pc_if_available (frame_info_ptr frame, CORE_ADDR *pc)
 
CORE_ADDR get_frame_address_in_block (frame_info_ptr this_frame)
 
bool get_frame_address_in_block_if_available (frame_info_ptr this_frame, CORE_ADDR *pc)
 
symtab_and_line find_frame_sal (frame_info_ptr frame)
 
CORE_ADDR get_frame_base (frame_info_ptr fi)
 
CORE_ADDR get_frame_base_address (frame_info_ptr fi)
 
CORE_ADDR get_frame_locals_address (frame_info_ptr fi)
 
CORE_ADDR get_frame_args_address (frame_info_ptr fi)
 
bool frame_unwinder_is (frame_info_ptr fi, const frame_unwind *unwinder)
 
int frame_relative_level (frame_info_ptr fi)
 
enum frame_type get_frame_type (frame_info_ptr frame)
 
struct program_spaceget_frame_program_space (frame_info_ptr frame)
 
struct program_spaceframe_unwind_program_space (frame_info_ptr this_frame)
 
const address_spaceget_frame_address_space (frame_info_ptr frame)
 
void get_frame_memory (frame_info_ptr this_frame, CORE_ADDR addr, gdb::array_view< gdb_byte > buffer)
 
LONGEST get_frame_memory_signed (frame_info_ptr this_frame, CORE_ADDR addr, int len)
 
ULONGEST get_frame_memory_unsigned (frame_info_ptr this_frame, CORE_ADDR addr, int len)
 
bool safe_frame_unwind_memory (frame_info_ptr this_frame, CORE_ADDR addr, gdb::array_view< gdb_byte > buffer)
 
struct gdbarchget_frame_arch (frame_info_ptr this_frame)
 
struct gdbarchframe_unwind_arch (frame_info_ptr next_frame)
 
struct gdbarchframe_unwind_caller_arch (frame_info_ptr next_frame)
 
enum language get_frame_language (frame_info_ptr frame)
 
CORE_ADDR get_frame_sp (frame_info_ptr this_frame)
 
frame_info_ptr frame_follow_static_link (frame_info_ptr frame)
 
enum unwind_stop_reason get_frame_unwind_stop_reason (frame_info_ptr frame)
 
const char * unwind_stop_reason_to_string (enum unwind_stop_reason reason)
 
const char * frame_stop_reason_string (frame_info_ptr fi)
 
void frame_cleanup_after_sniffer (frame_info_ptr frame)
 
void frame_prepare_for_sniffer (frame_info_ptr frame, const struct frame_unwind *unwind)
 
static void maintenance_print_frame_id (const char *args, int from_tty)
 
void _initialize_frame ()
 

Variables

static frame_infosentinel_frame
 
static unsigned int frame_cache_generation = 0
 
set_backtrace_options user_set_backtrace_options
 
static htab_t frame_stash
 
bool frame_debug
 
const struct frame_id null_frame_id = { 0 }
 
const struct frame_id outer_frame_id = { 0, 0, 0, FID_STACK_OUTER, 0, 1, 0 }
 
static struct obstack frame_cache_obstack
 
static frame_id selected_frame_id = null_frame_id
 
static int selected_frame_level = -1
 
static frame_info_ptr selected_frame
 
static struct cmd_list_elementset_backtrace_cmdlist
 
static struct cmd_list_elementshow_backtrace_cmdlist
 
const gdb::option::option_def set_backtrace_option_defs []
 

Macro Definition Documentation

◆ SET [1/2]

#define SET ( name,
description )    case name: return _(description);

◆ SET [2/2]

#define SET ( name,
description )    case name: return #name;

Typedef Documentation

◆ boolean_option_def

Definition at line 3271 of file frame.c.

Enumeration Type Documentation

◆ cached_copy_status

Enumerator
CC_UNKNOWN 
CC_VALUE 
CC_NOT_SAVED 
CC_UNAVAILABLE 

Definition at line 80 of file frame.c.

◆ frame_id_status

enum class frame_id_status
strong
Enumerator
NOT_COMPUTED 
COMPUTING 
COMPUTED 

Definition at line 95 of file frame.c.

Function Documentation

◆ _initialize_frame()

void _initialize_frame ( )

Definition at line 3376 of file frame.c.

Referenced by initialize_all_files().

◆ compute_frame_id()

static void compute_frame_id ( frame_info_ptr fi)
static

◆ create_new_frame() [1/2]

frame_info_ptr create_new_frame ( CORE_ADDR stack,
CORE_ADDR pc )

Definition at line 2055 of file frame.c.

References create_new_frame(), and frame_id_build().

Referenced by frame_info_ptr::reinflate().

◆ create_new_frame() [2/2]

static frame_info_ptr create_new_frame ( frame_id id)
static

◆ create_sentinel_frame()

static frame_info_ptr create_sentinel_frame ( struct program_space * pspace,
struct regcache * regcache,
CORE_ADDR stack_addr,
CORE_ADDR code_addr )
static

◆ deprecated_frame_register_read()

bool deprecated_frame_register_read ( frame_info_ptr frame,
int regnum,
gdb_byte * myaddr )

◆ deprecated_safe_get_selected_frame()

frame_info_ptr deprecated_safe_get_selected_frame ( void )

◆ find_frame_sal()

symtab_and_line find_frame_sal ( frame_info_ptr frame)

◆ frame_addr_hash()

static hashval_t frame_addr_hash ( const void * ap)
static

◆ frame_addr_hash_eq()

static int frame_addr_hash_eq ( const void * a,
const void * b )
static

Definition at line 258 of file frame.c.

References frame_info::this_id, and frame_info::value.

Referenced by frame_stash_create().

◆ frame_cleanup_after_sniffer()

void frame_cleanup_after_sniffer ( frame_info_ptr frame)

◆ frame_debug_got_null_frame()

static void frame_debug_got_null_frame ( frame_info_ptr this_frame,
const char * reason )
static

Definition at line 2528 of file frame.c.

References frame_debug, frame_debug_printf, and frame_info::level.

Referenced by get_prev_frame().

◆ frame_find_by_id()

frame_info_ptr frame_find_by_id ( struct frame_id id)

◆ frame_follow_static_link()

frame_info_ptr frame_follow_static_link ( frame_info_ptr frame)

◆ frame_id_artificial_p()

bool frame_id_artificial_p ( frame_id l)

◆ frame_id_build()

struct frame_id frame_id_build ( CORE_ADDR stack_addr,
CORE_ADDR code_addr )

Definition at line 736 of file frame.c.

References frame_id::code_addr, FID_STACK_VALID, null_frame_id, and frame_id::stack_addr.

Referenced by aarch64_fbsd_sigframe_init(), aarch64_linux_sigframe_init(), aarch64_prologue_this_id(), aarch64_stub_this_id(), aix_sighandle_frame_cache(), alpha_heuristic_frame_this_id(), alpha_mdebug_frame_this_id(), alpha_sigtramp_frame_this_id(), am33_linux_sigframe_cache_init(), amd64_dummy_id(), amd64_epilogue_frame_this_id(), amd64_fbsd_sigframe_init(), amd64_frame_this_id(), amd64_sigtramp_frame_this_id(), amd64_windows_frame_this_id(), amd64obsd_trapframe_cache(), arc_frame_this_id(), arc_sigtramp_frame_this_id(), arm_epilogue_frame_this_id(), arm_fbsd_sigframe_init(), arm_linux_restart_syscall_init(), arm_linux_sigtramp_cache(), arm_m_exception_this_id(), arm_prologue_this_id(), arm_stub_this_id(), armobsd_sigframe_init(), avr_dummy_id(), avr_frame_this_id(), bfin_frame_this_id(), bfin_linux_sigframe_init(), bpf_dummy_id(), call_function_by_hand_dummy(), create_new_frame(), cris_frame_this_id(), cris_sigtramp_frame_this_id(), csky_frame_this_id(), csky_linux_rt_sigreturn_init(), csky_linux_rt_sigreturn_init_pt_regs(), csky_stub_this_id(), default_dummy_id(), dwarf2_frame_this_id(), frv_frame_this_id(), frv_linux_sigtramp_frame_cache(), ft32_frame_this_id(), h8300_frame_this_id(), hppa_fallback_frame_this_id(), hppa_frame_this_id(), hppa_linux_sigtramp_frame_this_id(), hppa_stub_frame_this_id(), hppanbsd_sigtramp_cache_init(), i386_dummy_id(), i386_epilogue_frame_this_id(), i386_fbsd_sigframe_init(), i386_frame_this_id(), i386_sigtramp_frame_this_id(), i386nbsd_sigtramp_cache_init(), i386obsd_trapframe_cache(), iq2000_frame_this_id(), jit_frame_this_id(), libunwind_frame_this_id(), lm32_frame_this_id(), loongarch_linux_rt_sigframe_init(), m32c_this_id(), m32r_frame_this_id(), m32r_linux_sigtramp_frame_this_id(), m68hc11_dummy_id(), m68hc11_frame_this_id(), m68k_dummy_id(), m68k_frame_this_id(), m68k_linux_sigtramp_frame_cache(), mep_frame_this_id(), microblaze_frame_this_id(), microblaze_linux_sigtramp_cache(), mips64_fbsd_sigframe_init(), mips64obsd_sigframe_init(), mips_dummy_id(), mips_fbsd_sigframe_init(), mips_insn16_frame_this_id(), mips_insn32_frame_this_id(), mips_linux_n32n64_sigframe_init(), mips_linux_o32_sigframe_init(), mips_micro_frame_this_id(), mips_sde_frame_cache(), mips_stub_frame_cache(), mn10300_frame_this_id(), moxie_frame_this_id(), msp430_this_id(), nds32_epilogue_frame_this_id(), nds32_frame_this_id(), nios2_frame_this_id(), nios2_linux_rt_sigreturn_init(), nios2_stub_frame_cache(), or1k_frame_cache(), or1k_linux_sigframe_init(), pending_framepy_create_unwind_info(), ppc_linux_sigtramp_cache(), ppcfbsd_sigtramp_frame_cache(), ppcnbsd_sigtramp_cache_init(), ppcobsd_sigtramp_frame_cache(), riscv_fbsd_sigframe_init(), riscv_frame_cache(), riscv_linux_sigframe_init(), rl78_dummy_id(), rl78_this_id(), rs6000_epilogue_frame_this_id(), rs6000_frame_this_id(), rx_frame_this_id(), s12z_frame_cache(), s390_dummy_id(), s390_frame_this_id(), s390_sigtramp_frame_this_id(), s390_stub_frame_this_id(), sh_frame_this_id(), sh_linux_sigtramp_cache(), sh_stub_this_id(), sparc32_frame_this_id(), sparc32_linux_sigframe_init(), sparc32_sol2_sigtramp_frame_this_id(), sparc32nbsd_sigcontext_frame_this_id(), sparc32obsd_sigtramp_frame_this_id(), sparc64_frame_this_id(), sparc64_linux_sigframe_init(), sparc64_sol2_sigtramp_frame_this_id(), sparc64fbsd_sigtramp_frame_this_id(), sparc64nbsd_sigcontext_frame_this_id(), sparc64obsd_frame_this_id(), sparc64obsd_trapframe_this_id(), sparc_dummy_id(), tic6x_frame_this_id(), tic6x_linux_rt_sigreturn_init(), tic6x_stub_this_id(), tilegx_frame_this_id(), tilegx_linux_sigframe_init(), v850_frame_this_id(), vax_dummy_id(), vax_frame_this_id(), xstormy16_frame_this_id(), xtensa_dummy_id(), xtensa_frame_this_id(), and z80_frame_this_id().

◆ frame_id_build_sentinel()

frame_id frame_id_build_sentinel ( CORE_ADDR stack_addr,
CORE_ADDR code_addr )

◆ frame_id_build_special()

struct frame_id frame_id_build_special ( CORE_ADDR stack_addr,
CORE_ADDR code_addr,
CORE_ADDR special_addr )

◆ frame_id_build_unavailable_stack()

struct frame_id frame_id_build_unavailable_stack ( CORE_ADDR code_addr)

◆ frame_id_build_unavailable_stack_special()

struct frame_id frame_id_build_unavailable_stack_special ( CORE_ADDR code_addr,
CORE_ADDR special_addr )

◆ frame_id_build_wild()

struct frame_id frame_id_build_wild ( CORE_ADDR stack_addr)

◆ frame_id_inner()

static bool frame_id_inner ( struct gdbarch * gdbarch,
struct frame_id l,
struct frame_id r )
static

◆ frame_id_p()

bool frame_id_p ( frame_id l)

◆ frame_info_del()

static void frame_info_del ( frame_info * frame)
static

◆ frame_observer_target_changed()

static void frame_observer_target_changed ( struct target_ops * target)
static

Definition at line 2099 of file frame.c.

References reinit_frame_cache().

◆ frame_obstack_zalloc()

void * frame_obstack_zalloc ( unsigned long size)

Definition at line 1659 of file frame.c.

References frame_cache_obstack, and size.

Referenced by dwarf2_frame_allocate_fn_data(), and get_prev_frame_always().

◆ frame_pop()

void frame_pop ( frame_info_ptr this_frame)

◆ frame_prepare_for_sniffer()

void frame_prepare_for_sniffer ( frame_info_ptr frame,
const struct frame_unwind * unwind )

Definition at line 3258 of file frame.c.

References frame_info::unwind.

Referenced by frame_unwind_try_unwinder().

◆ frame_register()

static void frame_register ( frame_info_ptr frame,
int regnum,
int * optimizedp,
int * unavailablep,
enum lval_type * lvalp,
CORE_ADDR * addrp,
int * realnump,
gdb_byte * bufferp )
static

◆ frame_register_unwind()

void frame_register_unwind ( frame_info_ptr next_frame,
int regnum,
int * optimizedp,
int * unavailablep,
enum lval_type * lvalp,
CORE_ADDR * addrp,
int * realnump,
gdb_byte * bufferp )

◆ frame_register_unwind_location()

static void frame_register_unwind_location ( frame_info_ptr this_frame,
int regnum,
int * optimizedp,
enum lval_type * lvalp,
CORE_ADDR * addrp,
int * realnump )
static

◆ frame_relative_level()

int frame_relative_level ( frame_info_ptr fi)

◆ frame_save_as_regcache()

std::unique_ptr< readonly_detached_regcache > frame_save_as_regcache ( frame_info_ptr this_frame)

◆ frame_stash_add()

static bool frame_stash_add ( frame_info * frame)
static

◆ frame_stash_create()

static void frame_stash_create ( void )
static

Definition at line 284 of file frame.c.

References frame_addr_hash(), frame_addr_hash_eq(), frame_info_del(), and frame_stash.

◆ frame_stash_find()

static frame_info_ptr frame_stash_find ( struct frame_id id)
static

Definition at line 324 of file frame.c.

References dummy, frame_stash, frame_info::this_id, and frame_info::value.

Referenced by create_new_frame(), and frame_find_by_id().

◆ frame_stash_invalidate()

static void frame_stash_invalidate ( void )
static

Definition at line 339 of file frame.c.

References frame_stash.

◆ frame_stop_reason_string()

const char * frame_stop_reason_string ( frame_info_ptr fi)

◆ frame_stop_reason_symbol_string()

static const char * frame_stop_reason_symbol_string ( enum unwind_stop_reason reason)
static

Definition at line 3210 of file frame.c.

Referenced by get_prev_frame_always_1().

◆ frame_type_str()

const char * frame_type_str ( frame_type type)

◆ frame_unwind_arch()

struct gdbarch * frame_unwind_arch ( frame_info_ptr next_frame)

◆ frame_unwind_caller_arch()

struct gdbarch * frame_unwind_caller_arch ( frame_info_ptr next_frame)

◆ frame_unwind_caller_id()

struct frame_id frame_unwind_caller_id ( frame_info_ptr next_frame)

◆ frame_unwind_caller_pc()

CORE_ADDR frame_unwind_caller_pc ( frame_info_ptr this_frame)

◆ frame_unwind_pc()

static CORE_ADDR frame_unwind_pc ( frame_info_ptr this_frame)
static

◆ frame_unwind_program_space()

struct program_space * frame_unwind_program_space ( frame_info_ptr this_frame)

Definition at line 2971 of file frame.c.

References frame_info::pspace.

Referenced by insert_step_resume_breakpoint_at_caller().

◆ frame_unwind_register()

void frame_unwind_register ( frame_info_ptr next_frame,
int regnum,
gdb_byte * buf )

◆ frame_unwind_register_signed()

LONGEST frame_unwind_register_signed ( frame_info_ptr next_frame,
int regnum )

◆ frame_unwind_register_unsigned()

ULONGEST frame_unwind_register_unsigned ( frame_info_ptr next_frame,
int regnum )

◆ frame_unwind_register_value()

struct value * frame_unwind_register_value ( frame_info_ptr next_frame,
int regnum )

◆ frame_unwinder_is()

bool frame_unwinder_is ( frame_info_ptr fi,
const frame_unwind * unwinder )

◆ get_current_frame()

frame_info_ptr get_current_frame ( void )

Definition at line 1670 of file frame.c.

References create_sentinel_frame(), current_program_space, frame_info_ptr::get(), get_current_regcache(), get_prev_frame_always_1(), get_traceframe_number(), sentinel_frame, target_has_memory(), target_has_registers(), target_has_stack(), and validate_registers_access().

Referenced by ada_unhandled_exception_name_addr_from_raise(), arc_linux_skip_solib_resolver(), arm_linux_copy_svc(), arm_pc_is_thumb(), backtrace_command_1(), bpfinishpy_init(), bpstat_check_breakpoint_conditions(), branch_dest(), call_function_by_hand_dummy(), check_longjmp_breakpoint_for_call_dummy(), derive_stack_segment(), elf_gnu_ifunc_resolver_return_stop(), elf_gnu_ifunc_resolver_stop(), fbsd_convert_siginfo(), fbsd_siginfo_size(), fbsd_skip_solib_resolver(), find_frame_addr_in_frame_chain(), find_frame_for_address(), find_frame_for_function(), finish_backward(), frame_apply_all_command(), frame_apply_command(), frame_find_by_id(), gdbpy_newest_frame(), gdbscm_newest_frame(), get_thread_current_frame_id(), glibc_skip_solib_resolver(), handle_jit_event(), handle_signal_stop(), handle_step_into_function(), inline_frame_is_marked_for_skip(), insert_single_step_breakpoints(), jump_command(), keep_going_stepped_thread(), leading_innermost_frame(), frame_command_helper< FPTR >::level(), lookup_selected_frame(), loongarch_next_pc(), aarch64_linux_nat_target::low_siginfo_fixup(), amd64_linux_nat_target::low_siginfo_fixup(), m32c_skip_trampoline_code(), maint_agent_command_1(), maint_agent_printf_command(), maintenance_print_frame_id(), mi_cmd_execute(), mi_cmd_stack_info_depth(), mi_cmd_stack_list_args(), mi_cmd_stack_list_frames(), mi_cmd_trace_frame_collected(), micromips_next_pc(), mips32_next_pc(), mips_fbsd_skip_solib_resolver(), mips_linux_skip_resolver(), mips_linux_syscall_next_pc(), nbsd_skip_solib_resolver(), nios2_get_next_pc(), normal_stop(), obsd_skip_solib_resolver(), parse_frame_specification(), prepare_one_step(), ada_catchpoint::print_it(), remote_target::print_one_stopped_thread(), print_stop_location(), proceed(), process_event_stop_test(), selftests::register_to_value_test(), frame_info_ptr::reinflate(), reserve_stack_space(), resolve_msgsend(), resolve_msgsend_stret(), resolve_msgsend_super(), resolve_msgsend_super_stret(), resume_1(), riscv_next_pc(), rs6000_stack_frame_destroyed_p(), save_bookmark_command(), set_step_frame(), finish_command_fsm::should_stop(), skip_inline_frames(), sol2_skip_solib_resolver(), solib_event_probe_action(), sparc_analyze_control_transfer(), step_command_fsm_prepare(), store_regs(), svr4_handle_solib_event(), tdump_command(), tfind_1(), tfind_line_command(), tic6x_get_next_pc(), trailing_outermost_frame(), until_next_command(), update_watchpoint(), and watchpoint_check().

◆ get_frame_address_in_block()

CORE_ADDR get_frame_address_in_block ( frame_info_ptr this_frame)

◆ get_frame_address_in_block_if_available()

bool get_frame_address_in_block_if_available ( frame_info_ptr this_frame,
CORE_ADDR * pc )

◆ get_frame_address_space()

const address_space * get_frame_address_space ( frame_info_ptr frame)

◆ get_frame_arch()

struct gdbarch * get_frame_arch ( frame_info_ptr this_frame)

Definition at line 3027 of file frame.c.

References frame_unwind_arch(), and frame_info::next.

Referenced by aarch64_dwarf2_prev_register(), aarch64_fbsd_sigframe_init(), aarch64_get_longjmp_target(), aarch64_linux_read_signal_frame_info(), aarch64_linux_sigframe_init(), aarch64_linux_sigframe_prev_arch(), aarch64_make_prologue_cache_1(), aarch64_prologue_frame_unwind_stop_reason(), aarch64_prologue_prev_register(), aarch64_scan_prologue(), address_from_register(), address_of_variable(), aix_sighandle_frame_cache(), alpha_get_longjmp_target(), alpha_heuristic_frame_unwind_cache(), alpha_linux_sigcontext_addr(), alpha_register_to_value(), alpha_sigtramp_frame_prev_register(), alpha_sigtramp_frame_sniffer(), alpha_sigtramp_frame_this_id(), alpha_sigtramp_frame_unwind_cache(), alpha_value_to_register(), alphaobsd_sigcontext_addr(), amd64_darwin_sigcontext_addr(), amd64_epilogue_frame_cache(), amd64_epilogue_frame_sniffer_1(), amd64_frame_cache_1(), amd64_frame_prev_register(), amd64_get_longjmp_target(), amd64_linux_sigcontext_addr(), amd64_linux_sigtramp_start(), amd64_sigtramp_frame_cache(), amd64_sigtramp_frame_sniffer(), amd64_windows_frame_cache(), amd64_windows_frame_decode_epilogue(), amd64_windows_frame_decode_insns(), amd64_windows_frame_prev_register(), amd64_windows_skip_trampoline_code(), amd64obsd_trapframe_cache(), arc_frame_prev_register(), arc_frame_this_id(), arc_get_longjmp_target(), arc_linux_is_sigtramp(), arc_make_frame_cache(), arc_make_sigtramp_frame_cache(), arc_sigtramp_frame_sniffer(), arc_sigtramp_frame_this_id(), arm_cache_init(), arm_dwarf2_prev_register(), arm_epilogue_frame_sniffer(), arm_epilogue_frame_this_id(), arm_exidx_fill_cache(), arm_exidx_unwind_sniffer(), arm_fbsd_sigframe_init(), arm_frame_is_thumb(), arm_get_longjmp_target(), arm_linux_restart_syscall_init(), arm_linux_rt_sigreturn_init(), arm_linux_sigreturn_init(), arm_m_exception_cache(), arm_m_exception_frame_unwind_stop_reason(), arm_m_exception_prev_register(), arm_m_exception_this_id(), arm_m_exception_unwind_sniffer(), arm_make_epilogue_frame_cache(), arm_make_prologue_cache(), arm_make_stub_cache(), arm_normal_frame_base(), arm_pe_skip_trampoline_code(), arm_prologue_prev_register(), arm_prologue_this_id(), arm_prologue_unwind_stop_reason(), arm_scan_prologue(), arm_skip_bx_reg(), arm_stub_this_id(), avr_frame_prev_register(), avr_frame_unwind_cache(), bfin_frame_prev_register(), BP_MANIPULATION(), BP_MANIPULATION(), call0_frame_cache(), call_function_by_hand_dummy(), cris_frame_unwind_cache(), cris_scan_prologue(), cris_sigcontext_addr(), cris_sigtramp_frame_unwind_cache(), crisv32_scan_prologue(), csky_check_long_branch(), csky_frame_unwind_cache(), derive_stack_segment(), disassemble_current_function(), tui_source_window::do_scroll_vertical(), dummy_frame_prev_register(), dummy_frame_sniffer(), dwarf2_frame_cache(), dwarf2_frame_prev_register(), dwarf2_frame_sniffer(), dwarf2_tailcall_prev_register_first(), dwarf_expr_reg_to_entry_parameter(), elf_gnu_ifunc_resolver_return_stop(), elf_gnu_ifunc_resolver_stop(), stap_probe::evaluate_argument(), examine_prologue(), dwarf_expr_context::execute_stack_op(), fbsd_convert_siginfo(), fbsd_siginfo_size(), value::fetch_lazy_register(), fetch_probe_arguments(), dwarf_expr_context::fetch_result(), find_frame_addr_in_frame_chain(), finish_backward(), finish_command(), finish_forward(), frame_base_find_by_frame(), frame_find_by_id(), frame_info_to_frame_object(), frame_save_as_regcache(), frame_unwind_arch(), frame_unwind_find_by_frame(), frapy_read_register(), frscm_scm_from_frame(), frv_frame_unwind_cache(), frv_linux_sigcontext_reg_addr(), frv_linux_sigtramp_frame_cache(), frv_linux_sigtramp_frame_sniffer(), ft32_frame_cache(), gdbpy_apply_frame_filter(), gdbscm_frame_read_register(), get_current_arch(), get_frame_memory_signed(), get_frame_memory_unsigned(), get_frame_register_bytes(), get_frame_sp(), get_prev_frame_always_1(), gnuv3_skip_trampoline(), h8300_frame_cache(), h8300_frame_prev_register(), handle_jit_event(), handle_signal_stop(), hppa_fallback_frame_cache(), hppa_find_unwind_entry_in_block(), hppa_frame_cache(), hppa_frame_prev_register_helper(), hppa_linux_sigtramp_frame_sniffer(), hppa_linux_sigtramp_frame_unwind_cache(), hppa_skip_trampoline_code(), hppa_stub_unwind_sniffer(), i386_darwin_sigcontext_addr(), i386_epilogue_frame_sniffer_1(), i386_fetch_pointer_argument(), i386_frame_cache_1(), i386_get_longjmp_target(), i386_gnu_sigcontext_addr(), i386_linux_sigcontext_addr(), i386_pe_skip_trampoline_code(), i386_register_to_value(), i386_sigtramp_frame_cache(), i386_sigtramp_frame_sniffer(), i386_svr4_sigcontext_addr(), i386_value_to_register(), i386bsd_sigcontext_addr(), i386nbsd_sigtramp_cache_init(), i386nto_sigcontext_addr(), i386obsd_trapframe_cache(), i387_print_float_info(), i387_register_to_value(), i387_value_to_register(), ia64_frame_cache(), ia64_frame_prev_register(), ia64_frame_this_id(), ia64_register_to_value(), ia64_sigtramp_frame_cache(), ia64_sigtramp_frame_init_saved_regs(), ia64_sigtramp_frame_prev_register(), ia64_sigtramp_frame_sniffer(), ia64_sigtramp_frame_this_id(), ia64_value_to_register(), indirect_pieced_value(), info_float_command(), info_frame_command_core(), insert_exception_resume_breakpoint(), insert_exception_resume_from_probe(), insert_hp_step_resume_breakpoint_at_frame(), inside_main_func(), iq2000_frame_cache(), call_site_target::iterate_over_addresses(), jit_frame_sniffer(), jit_unwind_reg_get_impl(), jit_unwind_reg_set_impl(), keep_going_stepped_thread(), libunwind_frame_cache(), libunwind_frame_prev_register(), libunwind_frame_sniffer(), libunwind_sigtramp_frame_sniffer(), lm32_frame_cache(), locexpr_get_frame_base(), loclist_get_frame_base(), aarch64_linux_nat_target::low_siginfo_fixup(), amd64_linux_nat_target::low_siginfo_fixup(), m32c_analyze_frame_prologue(), m32c_frame_base(), m32c_prev_register(), m32c_skip_trampoline_code(), m32r_frame_unwind_cache(), m68hc11_frame_prev_register(), m68hc11_frame_unwind_cache(), m68k_frame_cache(), m68k_get_longjmp_target(), m68k_linux_get_sigtramp_info(), m68k_linux_pc_in_sigtramp(), m68k_linux_sigtramp_frame_cache(), m68k_register_to_value(), m68k_value_to_register(), tui_disasm_window::maybe_update(), tui_source_window::maybe_update(), mi_cmd_data_list_register_values(), mi_cmd_trace_frame_collected(), microblaze_frame_cache(), micromips_linux_sigframe_validate(), mips2_fp_compat(), mips64_fbsd_sigframe_init(), mips64_linux_get_longjmp_target(), mips64obsd_sigframe_init(), mips_fbsd_sigframe_init(), mips_get_mips16_fn_stub_pc(), mips_insn16_frame_base_sniffer(), mips_insn16_frame_cache(), mips_insn16_frame_sniffer(), mips_insn32_frame_cache(), mips_linux_get_longjmp_target(), mips_linux_n32n64_sigframe_init(), mips_linux_o32_sigframe_init(), mips_micro_frame_base_sniffer(), mips_micro_frame_cache(), mips_micro_frame_sniffer(), mips_print_fp_register(), mips_print_register(), mips_read_fp_register_double(), mips_read_fp_register_single(), mips_register_to_value(), mips_sde_frame_cache(), mips_skip_mips16_trampoline_code(), mips_skip_pic_trampoline_code(), mips_stub_frame_cache(), mips_value_to_register(), mipsnbsd_get_longjmp_target(), mn10300_analyze_frame_prologue(), moxie_frame_cache(), msp430_analyze_frame_prologue(), msp430_skip_trampoline_code(), nds32_epilogue_frame_cache(), nds32_epilogue_frame_sniffer(), nds32_frame_cache(), nds32_get_longjmp_target(), nios2_frame_unwind_cache(), nios2_get_longjmp_target(), nios2_stub_frame_cache(), or1k_frame_cache(), ppc64_plt_entry_point(), ppc64_plt_pcrel_entry_point(), ppc64_skip_trampoline_code(), ppc_linux_sigtramp_cache(), ppc_skip_trampoline_code(), ppcfbsd_sigtramp_frame_cache(), ppcfbsd_sigtramp_frame_sniffer(), ppcnbsd_sigtramp_cache_init(), ppcobsd_sigtramp_frame_cache(), ppcobsd_sigtramp_frame_sniffer(), print_frame_args(), print_frame_info(), print_frame_nameless_args(), print_gp_register_row(), print_vector_info(), probe_safe_evaluate_at_pc(), process_event_stop_test(), put_frame_register(), put_frame_register_bytes(), py_print_frame(), read_addr_from_reg(), read_frame_register_unsigned(), read_frame_register_value(), read_insn(), language_defn::read_var_value(), record_btrace_frame_prev_register(), registers_info(), tui_source_window_base::rerender(), reserve_stack_space(), resolve_msgsend(), resolve_msgsend_stret(), resolve_msgsend_super(), resolve_msgsend_super_stret(), riscv_fbsd_sigframe_init(), riscv_frame_cache(), riscv_linux_sigframe_init(), rs6000_epilogue_frame_cache(), rs6000_epilogue_frame_sniffer(), rs6000_frame_cache(), rs6000_register_to_value(), rs6000_skip_trampoline_code(), rw_pieced_value(), rx_frame_prev_register(), s12z_frame_cache(), s390_backchain_frame_unwind_cache(), s390_prologue_frame_unwind_cache(), s390_sigtramp_frame_unwind_cache(), s390_stub_frame_unwind_cache(), s390_unwind_pseudo_register(), sh_frame_cache(), sh_frame_prev_register(), sh_linux_sigtramp_cache(), sh_make_stub_cache(), tui_data_window::show_register_group(), objc_language::skip_trampoline(), skip_unwritable_frames(), solib_event_probe_action(), sparc32_frame_prev_register(), sparc32_linux_step_trap(), sparc32nbsd_sigcontext_saved_regs(), sparc64_frame_prev_register(), sparc64_linux_get_longjmp_target(), sparc64_linux_step_trap(), sparc64nbsd_sigcontext_saved_regs(), sparc_frame_cache(), tailcall_frame_prev_arch(), tic6x_frame_unwind_cache(), tic6x_get_longjmp_target(), tic6x_linux_rt_sigreturn_init(), tilegx_get_longjmp_target(), trad_frame_alloc_saved_regs(), trad_frame_set_reg_regmap(), tramp_frame_start(), tui_get_function_from_frame(), tui_register_format(), tui_show_frame_info(), until_break_command(), update_watchpoint(), v850_frame_cache(), value_assign(), value_from_register(), value_of_builtin_frame_fp_reg(), value_of_builtin_frame_pc_reg(), value_of_builtin_frame_ps_reg(), value_of_builtin_frame_sp_reg(), value_of_register(), value_of_register_lazy(), value_of_user_reg(), watchpoint_check(), xstormy16_frame_cache(), xstormy16_skip_trampoline_code(), xtensa_frame_cache(), xtensa_frame_prev_register(), xtensa_window_interrupt_frame_cache(), z80_frame_prev_register(), and z80_frame_unwind_cache().

◆ get_frame_args_address()

CORE_ADDR get_frame_args_address ( frame_info_ptr fi)

◆ get_frame_base()

CORE_ADDR get_frame_base ( frame_info_ptr fi)

◆ get_frame_base_address()

CORE_ADDR get_frame_base_address ( frame_info_ptr fi)

◆ get_frame_cache_generation()

unsigned int get_frame_cache_generation ( )

◆ get_frame_func()

CORE_ADDR get_frame_func ( frame_info_ptr this_frame)

Definition at line 1098 of file frame.c.

References get_frame_func_if_available().

Referenced by aarch64_make_prologue_cache_1(), alpha_mdebug_frame_this_id(), alpha_sigtramp_frame_this_id(), amd64_epilogue_frame_cache(), amd64_frame_cache_1(), amd64obsd_trapframe_cache(), arc_frame_this_id(), arm_epilogue_frame_this_id(), arm_prologue_this_id(), avr_frame_this_id(), avr_frame_unwind_cache(), bfin_frame_cache(), BP_MANIPULATION(), BP_MANIPULATION(), cris_frame_this_id(), cris_frame_unwind_cache(), csky_frame_this_id(), dwarf2_frame_this_id(), dwarf_expr_reg_to_entry_parameter(), frv_frame_this_id(), frv_frame_unwind_cache(), ft32_frame_cache(), h8300_frame_cache(), hppa_fallback_frame_cache(), hppa_fallback_frame_this_id(), hppa_frame_cache(), hppa_stub_frame_this_id(), i386_epilogue_frame_cache(), i386_frame_cache_1(), i386obsd_trapframe_cache(), ia64_frame_cache(), inside_entry_func(), inside_main_func(), libunwind_frame_cache(), lm32_frame_cache(), m32c_analyze_frame_prologue(), m32c_this_id(), m32r_frame_this_id(), m32r_frame_unwind_cache(), m32r_linux_sigtramp_frame_cache(), m68hc11_frame_this_id(), m68hc11_frame_unwind_cache(), m68k_frame_cache(), mep_frame_this_id(), microblaze_frame_cache(), mips_insn16_frame_this_id(), mips_insn32_frame_this_id(), mips_micro_frame_this_id(), mn10300_analyze_frame_prologue(), mn10300_frame_this_id(), moxie_frame_cache(), msp430_analyze_frame_prologue(), msp430_this_id(), nds32_epilogue_frame_cache(), nds32_frame_cache(), nios2_frame_unwind_cache(), record_btrace_frame_this_id(), riscv_frame_cache(), rl78_analyze_frame_prologue(), rl78_this_id(), rs6000_epilogue_frame_this_id(), rs6000_frame_cache(), rs6000_frame_this_id(), rx_analyze_frame_prologue(), rx_frame_this_id(), sh_frame_cache(), sparc_frame_cache(), tic6x_frame_unwind_cache(), v850_frame_cache(), vax_frame_this_id(), xstormy16_frame_cache(), xtensa_frame_cache(), xtensa_window_interrupt_frame_cache(), z80_frame_this_id(), and z80_frame_unwind_cache().

◆ get_frame_func_if_available()

bool get_frame_func_if_available ( frame_info_ptr this_frame,
CORE_ADDR * pc )

◆ get_frame_id()

struct frame_id get_frame_id ( frame_info_ptr fi)

◆ get_frame_language()

enum language get_frame_language ( frame_info_ptr frame)

◆ get_frame_locals_address()

CORE_ADDR get_frame_locals_address ( frame_info_ptr fi)

◆ get_frame_memory()

void get_frame_memory ( frame_info_ptr this_frame,
CORE_ADDR addr,
gdb::array_view< gdb_byte > buffer )

Definition at line 2990 of file frame.c.

References read_memory().

◆ get_frame_memory_signed()

LONGEST get_frame_memory_signed ( frame_info_ptr this_frame,
CORE_ADDR addr,
int len )

Definition at line 2997 of file frame.c.

References gdbarch_byte_order(), get_frame_arch(), and read_memory_integer().

◆ get_frame_memory_unsigned()

ULONGEST get_frame_memory_unsigned ( frame_info_ptr this_frame,
CORE_ADDR addr,
int len )

◆ get_frame_pc()

CORE_ADDR get_frame_pc ( frame_info_ptr frame)

Definition at line 2712 of file frame.c.

References frame_unwind_pc(), and frame_info::next.

Referenced by aarch64_make_stub_cache(), aarch64_scan_prologue(), aarch64_stub_unwind_sniffer(), aix_sighandle_frame_sniffer(), alpha_heuristic_frame_unwind_cache(), alpha_linux_sigcontext_addr(), alpha_sigtramp_frame_sniffer(), alpha_sigtramp_frame_this_id(), alphaobsd_sigcontext_addr(), amd64_dummy_id(), amd64_epilogue_frame_sniffer_1(), amd64_frame_cache_1(), amd64_linux_sigtramp_p(), amd64_linux_sigtramp_start(), amd64_sigtramp_frame_sniffer(), amd64_sigtramp_frame_this_id(), amd64_windows_frame_cache(), amd64nbsd_sigtramp_p(), amd64obsd_sigcontext_addr(), amd64obsd_sigtramp_p(), amd64obsd_trapframe_sniffer(), arc_linux_is_sigtramp(), arc_make_frame_cache(), arm_epilogue_frame_sniffer(), arm_epilogue_frame_this_id(), arm_exidx_unwind_sniffer(), arm_linux_copy_svc(), arm_m_exception_cache(), arm_m_exception_this_id(), arm_m_exception_unwind_sniffer(), arm_prologue_this_id(), arm_prologue_unwind_stop_reason(), arm_scan_prologue(), arm_stub_this_id(), arm_stub_unwind_sniffer(), avr_dummy_id(), avr_frame_unwind_cache(), bfin_frame_cache(), bfin_linux_sigframe_init(), BP_MANIPULATION(), BP_MANIPULATION(), bpf_dummy_id(), bpfinishpy_init(), check_exception_resume(), check_scope(), compute_probe_arg(), cris_rt_sigtramp_start(), cris_scan_prologue(), cris_sigtramp_frame_this_id(), cris_sigtramp_start(), csky_frame_unwind_cache(), csky_stub_this_id(), csky_stub_unwind_sniffer(), default_dummy_id(), tui_source_window::do_scroll_vertical(), dwarf2_fetch_die_loc_cu_off(), dwarf2_fetch_die_loc_sect_off(), dwarf2_get_symbol_read_needs(), dwarf_expr_reg_to_entry_parameter(), elf_gnu_ifunc_resolver_stop(), fetch_probe_arguments(), find_frame_for_function(), find_frame_sal(), finish_backward(), finish_command(), finish_forward(), frame_show_address(), frapy_pc(), frv_analyze_prologue(), frv_linux_sigcontext_reg_addr(), frv_linux_sigtramp_frame_cache(), frv_linux_sigtramp_frame_sniffer(), ft32_frame_cache(), gdbscm_frame_pc(), get_frame_address_in_block(), get_selected_pc_producer_options(), h8300_frame_cache(), hppa_fallback_frame_cache(), hppa_frame_cache(), hppa_linux_sigtramp_frame_sniffer(), hppa_linux_sigtramp_frame_this_id(), hppa_linux_sigtramp_frame_unwind_cache(), i386_dummy_id(), i386_epilogue_frame_sniffer_1(), i386_frame_cache_1(), i386_gnu_sigtramp_p(), i386_gnu_sigtramp_start(), i386_linux_dwarf_signal_frame_p(), i386_linux_rt_sigtramp_start(), i386_linux_sigcontext_addr(), i386_linux_sigtramp_p(), i386_linux_sigtramp_start(), i386_sigtramp_frame_sniffer(), i386_sigtramp_frame_this_id(), i386_sigtramp_p(), i386_stack_tramp_frame_sniffer(), i386_svr4_sigtramp_p(), i386nto_sigtramp_p(), i386obsd_sigtramp_p(), i386obsd_trapframe_sniffer(), ia64_dummy_id(), ia64_frame_cache(), ia64_sigtramp_frame_sniffer(), ia64_sigtramp_frame_this_id(), info_frame_command_core(), insert_hp_step_resume_breakpoint_at_frame(), iq2000_frame_cache(), libunwind_frame_cache(), list_command(), lm32_frame_cache(), locexpr_get_frame_base(), loclist_get_frame_base(), loongarch_linux_syscall_next_pc(), m32c_analyze_frame_prologue(), m32r_frame_unwind_cache(), m32r_linux_sigtramp_frame_cache(), m32r_linux_sigtramp_frame_sniffer(), m68hc11_dummy_id(), m68hc11_frame_unwind_cache(), m68k_dummy_id(), m68k_frame_cache(), m68k_linux_pc_in_sigtramp(), m68k_linux_sigtramp_frame_cache(), maint_agent_command_1(), maint_agent_printf_command(), mips_dummy_id(), mips_insn16_frame_base_sniffer(), mips_insn16_frame_sniffer(), mips_insn32_frame_base_sniffer(), mips_insn32_frame_sniffer(), mips_linux_syscall_next_pc(), mips_micro_frame_base_sniffer(), mips_micro_frame_sniffer(), mips_sde_frame_cache(), mips_sde_frame_sniffer(), mips_single_step_through_delay(), mips_stub_frame_cache(), mips_stub_frame_sniffer(), mn10300_analyze_frame_prologue(), moxie_frame_cache(), msp430_analyze_frame_prologue(), nds32_epilogue_frame_cache(), nds32_epilogue_frame_sniffer(), nds32_frame_cache(), nios2_frame_unwind_cache(), nios2_linux_syscall_next_pc(), nios2_stub_frame_cache(), nios2_stub_frame_sniffer(), or1k_frame_cache(), pending_framepy_pc(), pending_framepy_repr(), pending_framepy_str(), ppc_linux_sigtramp_cache(), ppcfbsd_sigtramp_frame_cache(), ppcfbsd_sigtramp_frame_sniffer(), ppcobsd_sigtramp_frame_cache(), ppcobsd_sigtramp_frame_sniffer(), prepare_one_step(), print_frame_info(), remote_target::print_one_stopped_thread(), probe_safe_evaluate_at_pc(), pyuw_sniffer(), tui_source_window_base::refill(), tui_source_window_base::rerender(), riscv_frame_cache(), riscv_linux_syscall_next_pc(), rl78_analyze_frame_prologue(), rl78_dummy_id(), rs6000_epilogue_frame_sniffer(), rs6000_frame_cache(), rx_analyze_frame_prologue(), rx_frame_type(), s12z_frame_cache(), s390_backchain_frame_unwind_cache(), s390_dummy_id(), s390_prologue_frame_unwind_cache(), s390_sigtramp_frame_sniffer(), s390_sigtramp_frame_this_id(), s390_sigtramp_frame_unwind_cache(), s390_stub_frame_sniffer(), s390_stub_frame_this_id(), set_step_frame(), sh_frame_cache(), sh_stub_this_id(), skip_function_command(), skip_inline_frames(), sol2_sigtramp_p(), sparc32nbsd_sigcontext_frame_sniffer(), sparc32obsd_sigtramp_frame_cache(), sparc32obsd_sigtramp_frame_sniffer(), sparc64fbsd_sigtramp_frame_sniffer(), sparc64nbsd_sigtramp_frame_sniffer(), sparc64obsd_frame_cache(), sparc64obsd_sigtramp_frame_sniffer(), sparc_dummy_id(), sparc_frame_cache(), tailcall_frame_this_id(), tfind_line_command(), tic6x_frame_unwind_cache(), tic6x_linux_syscall_next_pc(), tic6x_stub_this_id(), tramp_frame_sniffer(), tui_get_function_from_frame(), until_next_command(), update_watchpoint(), v850_frame_cache(), using_direct::valid_line(), value_of_builtin_frame_pc_reg(), varobj_create(), vax_dummy_id(), watchpoint_check(), xstormy16_frame_cache(), xtensa_dummy_id(), and z80_frame_unwind_cache().

◆ get_frame_pc_if_available()

bool get_frame_pc_if_available ( frame_info_ptr frame,
CORE_ADDR * pc )

◆ get_frame_pc_masked()

bool get_frame_pc_masked ( frame_info_ptr frame)

◆ get_frame_program_space()

struct program_space * get_frame_program_space ( frame_info_ptr frame)

◆ get_frame_register()

void get_frame_register ( frame_info_ptr frame,
int regnum,
gdb_byte * buf )

◆ get_frame_register_bytes()

bool get_frame_register_bytes ( frame_info_ptr frame,
int regnum,
CORE_ADDR offset,
gdb::array_view< gdb_byte > buffer,
int * optimizedp,
int * unavailablep )

◆ get_frame_register_signed()

LONGEST get_frame_register_signed ( frame_info_ptr frame,
int regnum )

◆ get_frame_register_unsigned()

ULONGEST get_frame_register_unsigned ( frame_info_ptr frame,
int regnum )

Definition at line 1399 of file frame.c.

References frame_unwind_register_unsigned(), frame_info::next, and regnum.

Referenced by aarch64_fbsd_sigframe_init(), aarch64_get_longjmp_target(), aarch64_linux_read_signal_frame_info(), aarch64_make_prologue_cache_1(), aarch64_make_stub_cache(), aarch64_scan_prologue(), aix_sighandle_frame_cache(), alpha_get_longjmp_target(), alpha_heuristic_frame_unwind_cache(), alpha_linux_sigcontext_addr(), alpha_mdebug_frame_unwind_cache(), alphaobsd_sigcontext_addr(), am33_linux_sigframe_cache_init(), amd64_dummy_id(), amd64_fbsd_sigframe_init(), amd64_sol2_mcontext_addr(), amd64nbsd_mcontext_addr(), amd64obsd_sigcontext_addr(), amd64obsd_trapframe_cache(), amd64obsd_trapframe_sniffer(), arc_frame_base_address(), arc_frame_this_id(), arc_get_longjmp_target(), arc_make_frame_cache(), arc_sigtramp_frame_this_id(), arm_cache_init(), arm_dwarf2_prev_register(), arm_exidx_fill_cache(), arm_fbsd_sigframe_init(), arm_frame_is_thumb(), arm_get_longjmp_target(), arm_linux_restart_syscall_init(), arm_linux_rt_sigreturn_init(), arm_linux_sigreturn_init(), arm_linux_sigtramp_cache(), arm_m_exception_cache(), arm_make_epilogue_frame_cache(), arm_make_prologue_cache(), arm_make_stub_cache(), arm_print_float_info(), arm_prologue_prev_register(), arm_scan_prologue(), arm_skip_bx_reg(), arm_skip_stub(), avr_dummy_id(), avr_frame_unwind_cache(), bfin_frame_cache(), BP_MANIPULATION(), bpf_dummy_id(), call0_frame_cache(), cris_scan_prologue(), crisv32_scan_prologue(), crisv32_single_step_through_delay(), csky_analyze_prologue(), csky_linux_rt_sigreturn_init(), csky_linux_rt_sigreturn_init_pt_regs(), csky_make_stub_cache(), dwarf2_frame_prev_register(), examine_prologue(), frv_analyze_prologue(), ft32_frame_cache(), h8300_frame_cache(), hppa_fallback_frame_cache(), hppa_fetch_pointer_argument(), hppa_frame_cache(), hppa_linux_sigtramp_frame_unwind_cache(), hppa_skip_trampoline_code(), hppa_stub_frame_unwind_cache(), hppanbsd_sigtramp_cache_init(), i386_dummy_id(), i386_epilogue_frame_cache(), i386_fbsd_sigframe_init(), i386_fetch_pointer_argument(), i386_frame_prev_register(), i386_sol2_mcontext_addr(), i386nbsd_sigtramp_cache_init(), i386obsd_trapframe_cache(), i386obsd_trapframe_sniffer(), iq2000_frame_cache(), lm32_frame_cache(), loongarch_linux_syscall_next_pc(), m32c_frame_base(), m32r_frame_unwind_cache(), m32r_linux_sigtramp_frame_cache(), m68hc11_dummy_id(), m68hc11_frame_unwind_cache(), m68hc11_print_register(), m68k_dummy_id(), m68k_get_longjmp_target(), m68k_linux_get_sigtramp_info(), mep_frame_base(), mips2_fp_compat(), mips64_linux_get_longjmp_target(), mips_linux_get_longjmp_target(), mips_linux_syscall_next_pc(), mipsnbsd_get_longjmp_target(), mn10300_frame_base(), moxie_frame_cache(), msp430_frame_base(), msp430_skip_trampoline_code(), nds32_epilogue_frame_cache(), nds32_frame_cache(), nds32_get_longjmp_target(), nios2_analyze_prologue(), nios2_get_longjmp_target(), nios2_linux_rt_sigreturn_init(), nios2_linux_syscall_next_pc(), nios2_stub_frame_cache(), or1k_frame_cache(), ppc64_plt_entry_point(), ppc_linux_sigtramp_cache(), ppc_skip_trampoline_code(), ppcfbsd_sigtramp_frame_cache(), ppcnbsd_sigtramp_cache_init(), ppcobsd_sigtramp_frame_cache(), riscv_fbsd_sigframe_init(), riscv_frame_cache(), riscv_linux_syscall_next_pc(), rl78_dummy_id(), rl78_frame_base(), rs6000_epilogue_frame_cache(), rs6000_fetch_pointer_argument(), rs6000_frame_cache(), rs6000_in_function_epilogue_frame_p(), rs6000_skip_trampoline_code(), rx_frame_base(), s12z_frame_cache(), s390_backchain_frame_unwind_cache(), s390_dummy_id(), s390_prologue_frame_unwind_cache(), s390_sigtramp_frame_unwind_cache(), s390_stub_frame_unwind_cache(), sh_frame_cache(), sh_linux_sigtramp_cache(), sh_make_stub_cache(), sparc32_frame_cache(), sparc32_frame_prev_register(), sparc32_linux_sigframe_init(), sparc32_linux_step_trap(), sparc32_sol2_sigtramp_frame_cache(), sparc32nbsd_sigcontext_frame_cache(), sparc32nbsd_sigcontext_saved_regs(), sparc32obsd_sigtramp_frame_cache(), sparc64_frame_prev_register(), sparc64_linux_get_longjmp_target(), sparc64_linux_sigframe_init(), sparc64_linux_step_trap(), sparc64_sol2_sigtramp_frame_cache(), sparc64fbsd_sigtramp_frame_cache(), sparc64nbsd_sigcontext_frame_cache(), sparc64obsd_frame_cache(), sparc64obsd_trapframe_cache(), sparc64obsd_trapframe_sniffer(), sparc_dummy_id(), sparc_frame_cache(), sparcnbsd_step_trap(), tic6x_analyze_prologue(), tic6x_get_longjmp_target(), tic6x_linux_rt_sigreturn_init(), tic6x_linux_syscall_next_pc(), tic6x_make_stub_cache(), tilegx_get_longjmp_target(), tilegx_linux_sigframe_init(), v850_frame_cache(), vax_dummy_id(), vax_frame_args_address(), vax_frame_cache(), vax_frame_num_args(), xstormy16_frame_cache(), xtensa_dummy_id(), xtensa_frame_cache(), xtensa_window_interrupt_frame_cache(), and z80_frame_unwind_cache().

◆ get_frame_register_value()

struct value * get_frame_register_value ( frame_info_ptr frame,
int regnum )

◆ get_frame_sp()

CORE_ADDR get_frame_sp ( frame_info_ptr this_frame)

◆ get_frame_type()

enum frame_type get_frame_type ( frame_info_ptr frame)

◆ get_frame_unwind_stop_reason()

enum unwind_stop_reason get_frame_unwind_stop_reason ( frame_info_ptr frame)

◆ get_next_frame()

frame_info_ptr get_next_frame ( frame_info_ptr this_frame)

◆ get_next_frame_sentinel_okay()

frame_info_ptr get_next_frame_sentinel_okay ( frame_info_ptr this_frame)

◆ get_prev_frame()

frame_info_ptr get_prev_frame ( frame_info_ptr this_frame)

Definition at line 2614 of file frame.c.

References set_backtrace_options::backtrace_limit, set_backtrace_options::backtrace_past_entry, set_backtrace_options::backtrace_past_main, frame_debug_got_null_frame(), FRAME_SCOPED_DEBUG_ENTER_EXIT, get_frame_pc_if_available(), get_frame_type(), get_next_frame(), get_prev_frame_always(), INLINE_FRAME, inside_entry_func(), inside_main_func(), frame_info::level, NORMAL_FRAME, and user_set_backtrace_options.

Referenced by ada_find_printable_frame(), ada_unhandled_exception_name_addr_from_raise(), arm_dwarf2_prev_register(), arm_linux_copy_svc(), backtrace_command_1(), block_innermost_frame(), bpfinishpy_init(), check_longjmp_breakpoint_for_call_dummy(), derive_stack_segment(), dwarf2_frame_cfa(), dwarf_expr_reg_to_entry_parameter(), elf_gnu_ifunc_resolver_stop(), find_frame_addr_in_frame_chain(), find_frame_for_address(), find_relative_frame(), finish_command(), frame_apply_command_count(), frame_find_by_id(), frame_follow_static_link(), frame_info_to_frame_object(), frame_object_to_frame_info(), frapy_older(), frscm_frame_smob_to_frame(), frscm_scm_from_frame(), gdbscm_frame_older(), get_hosting_frame(), info_frame_command_core(), inline_frame_is_marked_for_skip(), leading_innermost_frame(), mi_cmd_stack_info_depth(), mi_cmd_stack_list_args(), mi_cmd_stack_list_frames(), parse_frame_specification(), dwarf_expr_context::push_dwarf_reg_entry_value(), skip_tailcall_frames(), skip_unwritable_frames(), stepped_in_from(), trailing_outermost_frame(), and value_of_dwarf_reg_entry().

◆ get_prev_frame_always()

frame_info_ptr get_prev_frame_always ( frame_info_ptr this_frame)

◆ get_prev_frame_always_1()

static frame_info_ptr get_prev_frame_always_1 ( frame_info_ptr this_frame)
static

◆ get_prev_frame_maybe_check_cycle()

static frame_info_ptr get_prev_frame_maybe_check_cycle ( frame_info_ptr this_frame)
static

◆ get_prev_frame_raw()

static frame_info_ptr get_prev_frame_raw ( frame_info_ptr this_frame)
static

◆ get_selected_frame()

frame_info_ptr get_selected_frame ( const char * message)

Definition at line 1888 of file frame.c.

References has_stack_frames(), lookup_selected_frame(), selected_frame, selected_frame_id, and selected_frame_level.

Referenced by ada_exceptions_list_1(), frame_command_helper< FPTR >::base_command(), block_innermost_frame(), bsd_kvm_pcb_cmd(), bsd_kvm_proc_cmd(), bsd_kvm_target_open(), coerce_pieced_ref(), compile_to_object(), compute_probe_arg(), convert_one_symbol(), convert_one_symbol(), core_target_open(), deprecated_safe_get_selected_frame(), disassemble_current_function(), do_compile_dwarf_expr_to_c(), tui_source_window::do_scroll_vertical(), down_silently_base(), dwarf2_evaluate_property(), eval_op_register(), eval_op_var_entry_value(), fetch_probe_arguments(), finish_backward(), finish_command(), frame_apply_command_count(), frame_command_core(), gdbpy_lookup_static_symbol(), gdbpy_lookup_symbol(), gdbpy_selected_frame(), gdbscm_lookup_symbol(), gdbscm_selected_frame(), get_current_arch(), get_selected_block(), get_selected_pc_producer_options(), indirect_pieced_value(), info_args_command(), info_common_command(), info_float_command(), info_locals_command(), info_vector_command(), linux_fork_context(), list_command(), lookup_selected_frame(), maintenance_print_frame_id(), mi_cmd_data_list_changed_registers(), mi_cmd_data_list_register_values(), mi_cmd_exec_return(), mi_cmd_stack_info_frame(), mi_cmd_stack_list_locals(), mi_cmd_stack_list_variables(), mi_cmd_trace_find(), mi_cmd_trace_frame_collected(), mi_interp::on_user_selected_context_changed(), pc_prefix(), print_selected_thread_frame(), print_stop_location(), print_thread_info_1(), record_btrace_set_replay(), record_full_goto_entry(), record_full_restore(), registers_info(), sect_variable_value(), select_frame_command_core(), set_language(), show_language_command(), tui_data_window::show_registers(), skip_function_command(), task_command_1(), tfind_1(), tui_refresh_frame_and_register_information(), tui_register_changed(), until_break_command(), up_silently_base(), update_watchpoint(), using_direct::valid_line(), value_of_this(), value_of_variable(), and varobj_create().

◆ get_stack_frame_id()

struct frame_id get_stack_frame_id ( frame_info_ptr next_frame)

◆ has_stack_frames()

bool has_stack_frames ( )

◆ inside_entry_func()

static bool inside_entry_func ( frame_info_ptr this_frame)
static

Definition at line 2594 of file frame.c.

References entry_point_address_query(), and get_frame_func().

Referenced by get_prev_frame().

◆ inside_main_func()

static bool inside_main_func ( frame_info_ptr this_frame)
static

◆ invalidate_selected_frame()

static void invalidate_selected_frame ( )
static

Definition at line 1917 of file frame.c.

References null_frame_id, selected_frame, selected_frame_id, and selected_frame_level.

◆ lookup_selected_frame()

static void lookup_selected_frame ( struct frame_id a_frame_id,
int frame_level )
static

◆ maintenance_print_frame_id()

static void maintenance_print_frame_id ( const char * args,
int from_tty )
static

◆ put_frame_register()

void put_frame_register ( frame_info_ptr frame,
int regnum,
const gdb_byte * buf )

◆ put_frame_register_bytes()

void put_frame_register_bytes ( frame_info_ptr frame,
int regnum,
CORE_ADDR offset,
gdb::array_view< const gdb_byte > buffer )

◆ read_frame_register_unsigned()

bool read_frame_register_unsigned ( frame_info_ptr frame,
int regnum,
ULONGEST * val )

◆ reinit_frame_cache()

void reinit_frame_cache ( void )

◆ restore_selected_frame()

void restore_selected_frame ( frame_id frame_id,
int frame_level )
noexcept

◆ safe_frame_unwind_memory()

bool safe_frame_unwind_memory ( frame_info_ptr this_frame,
CORE_ADDR addr,
gdb::array_view< gdb_byte > buffer )

◆ save_selected_frame()

void save_selected_frame ( frame_id * frame_id,
int * frame_level )
noexcept

◆ select_frame()

void select_frame ( frame_info_ptr fi)

◆ set_frame_previous_pc_masked()

void set_frame_previous_pc_masked ( frame_info_ptr frame)

◆ show_backtrace_limit()

static void show_backtrace_limit ( struct ui_file * file,
int from_tty,
struct cmd_list_element * c,
const char * value )
static

Definition at line 395 of file frame.c.

References gdb_printf().

◆ show_backtrace_past_entry()

static void show_backtrace_past_entry ( struct ui_file * file,
int from_tty,
struct cmd_list_element * c,
const char * value )
static

Definition at line 384 of file frame.c.

References gdb_printf().

◆ show_backtrace_past_main()

static void show_backtrace_past_main ( struct ui_file * file,
int from_tty,
struct cmd_list_element * c,
const char * value )
static

Definition at line 372 of file frame.c.

References gdb_printf().

◆ show_frame_debug()

static void show_frame_debug ( struct ui_file * file,
int from_tty,
struct cmd_list_element * c,
const char * value )
static

Definition at line 363 of file frame.c.

References gdb_printf().

◆ skip_artificial_frames()

static frame_info_ptr skip_artificial_frames ( frame_info_ptr frame)
static

◆ skip_tailcall_frames()

frame_info_ptr skip_tailcall_frames ( frame_info_ptr frame)

Definition at line 567 of file frame.c.

References get_frame_type(), get_prev_frame(), and TAILCALL_FRAME.

Referenced by frame_pop(), and skip_finish_frames().

◆ skip_unwritable_frames()

frame_info_ptr skip_unwritable_frames ( frame_info_ptr frame)

Definition at line 552 of file frame.c.

References gdbarch_code_of_frame_writable(), get_frame_arch(), and get_prev_frame().

Referenced by skip_finish_frames().

◆ unwind_stop_reason_to_string()

const char * unwind_stop_reason_to_string ( enum unwind_stop_reason reason)

Variable Documentation

◆ frame_cache_generation

unsigned int frame_cache_generation = 0
static

Definition at line 61 of file frame.c.

Referenced by get_frame_cache_generation().

◆ frame_cache_obstack

struct obstack frame_cache_obstack
static

Definition at line 1656 of file frame.c.

Referenced by frame_obstack_zalloc().

◆ frame_debug

bool frame_debug

◆ frame_stash

htab_t frame_stash
static

◆ null_frame_id

const struct frame_id null_frame_id = { 0 }

◆ outer_frame_id

const struct frame_id outer_frame_id = { 0, 0, 0, FID_STACK_OUTER, 0, 1, 0 }

◆ selected_frame

frame_info_ptr selected_frame
static

◆ selected_frame_id

frame_id selected_frame_id = null_frame_id
static

◆ selected_frame_level

int selected_frame_level = -1
static

◆ sentinel_frame

frame_info* sentinel_frame
static

Definition at line 58 of file frame.c.

Referenced by frame_find_by_id(), and get_current_frame().

◆ set_backtrace_cmdlist

struct cmd_list_element* set_backtrace_cmdlist
static

Definition at line 3265 of file frame.c.

◆ set_backtrace_option_defs

const gdb::option::option_def set_backtrace_option_defs[]
Initial value:
= {
"past-main",
[] (set_backtrace_options *opt) { return &opt->backtrace_past_main; },
N_("Set whether backtraces should continue past \"main\"."),
N_("Show whether backtraces should continue past \"main\"."),
N_("Normally the caller of \"main\" is not of interest, so GDB will terminate\n\
the backtrace at \"main\". Set this if you need to see the rest\n\
of the stack trace."),
},
"past-entry",
[] (set_backtrace_options *opt) { return &opt->backtrace_past_entry; },
N_("Set whether backtraces should continue past the entry point of a program."),
N_("Show whether backtraces should continue past the entry point of a program."),
N_("Normally there are no callers beyond the entry point of a program, so GDB\n\
will terminate the backtrace there. Set this if you need to see\n\
the rest of the stack trace."),
},
}
static void show_backtrace_past_entry(struct ui_file *file, int from_tty, struct cmd_list_element *c, const char *value)
Definition frame.c:384
static void show_backtrace_past_main(struct ui_file *file, int from_tty, struct cmd_list_element *c, const char *value)
Definition frame.c:372

Definition at line 3273 of file frame.c.

Referenced by make_backtrace_options_def_group(), and make_frame_apply_options_def_group().

◆ show_backtrace_cmdlist

struct cmd_list_element* show_backtrace_cmdlist
static

Definition at line 3266 of file frame.c.

◆ user_set_backtrace_options

set_backtrace_options user_set_backtrace_options

Definition at line 72 of file frame.c.

Referenced by frame_apply_command_count(), and get_prev_frame().