GDB (xrefs)

Classes | Typedefs | Functions
/tmp/gdb-8.1/gdb/frame-unwind.h File Reference
`#include "frame.h"`

Go to the source code of this file.

## Classes
struct | frame_unwind

## Typedefs
typedef int() | frame_sniffer_ftype(const struct frame_unwind *self, struct frame_info *this_frame, void **this_prologue_cache)
typedef void() | frame_this_id_ftype(struct frame_info *this_frame, void **this_prologue_cache, struct frame_id *this_id)
typedef struct value *() | frame_prev_register_ftype(struct frame_info *this_frame, void **this_prologue_cache, int regnum)
typedef void() | frame_dealloc_cache_ftype(struct frame_info *self, void *this_cache)
typedef struct gdbarch *() | frame_prev_arch_ftype(struct frame_info *this_frame, void **this_prologue_cache)

## Functions
enum unwind_stop_reason() | frame_unwind_stop_reason_ftype (struct frame_info *this_frame, void **this_prologue_cache)
int | default_frame_sniffer (const struct frame_unwind *self, struct frame_info *this_frame, void **this_prologue_cache)
enum unwind_stop_reason | default_frame_unwind_stop_reason (struct frame_info *this_frame, void **this_cache)
void | frame_unwind_prepend_unwinder (struct gdbarch *, const struct frame_unwind *)
void | frame_unwind_append_unwinder (struct gdbarch *gdbarch, const struct frame_unwind *unwinder)
void | frame_unwind_find_by_frame (struct frame_info *this_frame, void **this_cache)
struct value * | frame_unwind_got_optimized (struct frame_info *frame, int regnum)
struct value * | frame_unwind_got_register (struct frame_info *frame, int regnum, int new_regnum)
struct value * | frame_unwind_got_memory (struct frame_info *frame, int regnum, CORE_ADDR addr)
struct value * | frame_unwind_got_constant (struct frame_info *frame, int regnum, ULONGEST val)
struct value * | frame_unwind_got_bytes (struct frame_info *frame, int regnum, gdb_byte *buf)
struct value * | frame_unwind_got_address (struct frame_info *frame, int regnum, CORE_ADDR addr)

## Typedef Documentation

## ◆ frame_dealloc_cache_ftype

typedef void() frame_dealloc_cache_ftype(struct frame_info *self, void *this_cache)

Definition at line 134 of file frame-unwind.h.

## ◆ frame_prev_arch_ftype

typedef struct gdbarch*() frame_prev_arch_ftype(struct frame_info *this_frame, void **this_prologue_cache)

Definition at line 141 of file frame-unwind.h.

## ◆ frame_prev_register_ftype

typedef struct value*() frame_prev_register_ftype(struct frame_info *this_frame, void **this_prologue_cache, int regnum)

Definition at line 129 of file frame-unwind.h.

## ◆ frame_sniffer_ftype

typedef int() frame_sniffer_ftype(const struct frame_unwind *self, struct frame_info *this_frame, void **this_prologue_cache)

Definition at line 52 of file frame-unwind.h.

## ◆ frame_this_id_ftype

typedef void() frame_this_id_ftype(struct frame_info *this_frame, void **this_prologue_cache, struct frame_id *this_id)

Definition at line 96 of file frame-unwind.h.

## Function Documentation

## ◆ default_frame_sniffer()

int default_frame_sniffer | ( | const struct frame_unwind * | self,
|  | struct frame_info * | this_frame,
|  | void ** | this_prologue_cache
| ) |  |

Definition at line 174 of file frame-unwind.c.

## ◆ default_frame_unwind_stop_reason()

enum unwind_stop_reason default_frame_unwind_stop_reason | ( | struct frame_info * | this_frame,
|  | void ** | this_cache
| ) |  |

Definition at line 184 of file frame-unwind.c.

References frame_id_eq(), get_frame_id(), and outer_frame_id.

Referenced by pyuw_on_new_gdbarch(), and tramp_frame_prepend_unwinder().

## ◆ frame_unwind_append_unwinder()

void frame_unwind_append_unwinder | ( | struct gdbarch * | gdbarch,
|  | const struct frame_unwind * | unwinder
| ) |  |

Definition at line 79 of file frame-unwind.c.

References frame_unwind_data, GDBARCH_OBSTACK_ZALLOC, 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(), arc_gdbarch_init(), arm_gdbarch_init(), avr_gdbarch_init(), bfin_gdbarch_init(), BP_MANIPULATION(), cris_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(), m32c_gdbarch_init(), m32r_gdbarch_init(), m32r_linux_init_abi(), m68hc11_gdbarch_init(), m68k_gdbarch_init(), m68k_linux_init_abi(), m88k_gdbarch_init(), mep_gdbarch_init(), microblaze_gdbarch_init(), mips_gdbarch_init(), mips_sde_init_abi(), mn10300_frame_unwind_init(), moxie_gdbarch_init(), msp430_gdbarch_init(), mt_gdbarch_init(), nds32_gdbarch_init(), nios2_gdbarch_init(), or1k_gdbarch_init(), ppcfbsd_init_abi(), ppcobsd_init_abi(), rl78_gdbarch_init(), rs6000_gdbarch_init(), rx_gdbarch_init(), s390_gdbarch_init(), score_gdbarch_init(), sh64_gdbarch_init(), 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(), spu_gdbarch_init(), tic6x_gdbarch_init(), tilegx_gdbarch_init(), v850_gdbarch_init(), vax_gdbarch_init(), xstormy16_gdbarch_init(), and xtensa_gdbarch_init().

## ◆ frame_unwind_find_by_frame()

void frame_unwind_find_by_frame | ( | struct frame_info * | this_frame,
|  | void ** | this_cache
| ) |  |

Definition at line 143 of file frame-unwind.c.

References _, frame_unwind_data, frame_unwind_try_unwinder(), get_frame_arch(), internal_error(), frame_unwind_table::list, frame_unwind_table_entry::next, target_get_tailcall_unwinder(), target_get_unwinder(), and frame_unwind_table_entry::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().

## ◆ frame_unwind_got_address()

struct value* frame_unwind_got_address | ( | struct frame_info * | frame,
|  | int | regnum,
|  | CORE_ADDR | addr
| ) |  |

Definition at line 275 of file frame-unwind.c.

References frame_unwind_arch(), not_lval, pack_long(), register_type(), regnum, value_contents_writeable(), and value_zero().

Referenced by dwarf2_frame_prev_register(), dwarf2_tailcall_prev_register_first(), and record_btrace_frame_prev_register().

## ◆ frame_unwind_got_bytes()

struct value* frame_unwind_got_bytes | ( | struct frame_info * | frame,
|  | int | regnum,
|  | gdb_byte * | buf
| ) |  |

Definition at line 260 of file frame-unwind.c.

References frame_unwind_arch(), not_lval, register_size(), register_type(), regnum, value_contents_raw(), and value_zero().

Referenced by jit_frame_prev_register(), libunwind_frame_prev_register(), ppu2spu_prev_register(), pyuw_prev_register(), and spu2ppu_prev_register().

## ◆ frame_unwind_got_constant()

struct value* frame_unwind_got_constant | ( | struct frame_info * | frame,
|  | int | regnum,
|  | ULONGEST | val
| ) |  |

Definition at line 246 of file frame-unwind.c.

References gdbarch::byte_order, frame_unwind_arch(), gdbarch_byte_order(), not_lval, register_size(), register_type(), regnum, store_unsigned_integer(), value_contents_writeable(), 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(), 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(), m88k_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(), sh64_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().

## ◆ frame_unwind_got_memory()

struct value* frame_unwind_got_memory | ( | struct frame_info * | frame,
|  | int | regnum,
|  | CORE_ADDR | addr
| ) |  |

Definition at line 233 of file frame-unwind.c.

References frame_unwind_arch(), register_type(), regnum, set_value_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(), sh64_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().

## ◆ frame_unwind_got_optimized()

struct value* frame_unwind_got_optimized | ( | struct frame_info * | frame,
|  | int | regnum
| ) |  |

Definition at line 201 of file frame-unwind.c.

References allocate_value_lazy(), frame_unwind_arch(), get_frame_id(), get_next_frame_sentinel_okay(), lval_register, mark_value_bytes_optimized_out(), register_type(), regnum, set_value_lazy(), TYPE_LENGTH, VALUE_LVAL, VALUE_NEXT_FRAME_ID, and VALUE_REGNUM.

Referenced by avr_frame_prev_register(), dwarf2_frame_prev_register(), jit_frame_prev_register(), pyuw_prev_register(), and trad_frame_get_prev_register().

## ◆ frame_unwind_got_register()

struct value* frame_unwind_got_register | ( | struct frame_info * | frame,
|  | int | regnum,
|  | int | new_regnum
| ) |  |

Definition at line 223 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(), 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(), sh64_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().

## ◆ frame_unwind_prepend_unwinder()

void frame_unwind_prepend_unwinder | ( | struct gdbarch * | ,
|  | const struct frame_unwind * |
| ) |  |

Definition at line 64 of file frame-unwind.c.

References frame_unwind_data, GDBARCH_OBSTACK_ZALLOC, frame_unwind_table_entry::next, 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(), ppc_linux_init_abi(), pyuw_on_new_gdbarch(), spu_gdbarch_init(), and tramp_frame_prepend_unwinder().

## ◆ frame_unwind_stop_reason_ftype()

enum unwind_stop_reason() frame_unwind_stop_reason_ftype | ( | struct frame_info * | this_frame,
|  | void ** | this_prologue_cache
| ) |  |