GDB (xrefs)
|
#include "defs.h"
#include "frame.h"
#include "dwarf2/frame-tailcall.h"
#include "dwarf2/loc.h"
#include "frame-unwind.h"
#include "block.h"
#include "hashtab.h"
#include "gdbtypes.h"
#include "regcache.h"
#include "value.h"
#include "gdbarch.h"
Go to the source code of this file.
Classes | |
struct | tailcall_cache |
Functions | |
static hashval_t | cache_hash (const void *arg) |
static int | cache_eq (const void *arg1, const void *arg2) |
static struct tailcall_cache * | cache_new_ref1 (frame_info_ptr next_bottom_frame) |
static void | cache_ref (struct tailcall_cache *cache) |
static void | cache_unref (struct tailcall_cache *cache) |
static int | frame_is_tailcall (frame_info_ptr fi) |
static struct tailcall_cache * | cache_find (frame_info_ptr fi) |
static int | existing_next_levels (frame_info_ptr this_frame, struct tailcall_cache *cache) |
static int | pretended_chain_levels (struct call_site_chain *chain) |
static void | tailcall_frame_this_id (frame_info_ptr this_frame, void **this_cache, struct frame_id *this_id) |
static CORE_ADDR | pretend_pc (frame_info_ptr this_frame, struct tailcall_cache *cache) |
struct value * | dwarf2_tailcall_prev_register_first (frame_info_ptr this_frame, void **tailcall_cachep, int regnum) |
static struct value * | tailcall_frame_prev_register (frame_info_ptr this_frame, void **this_cache, int regnum) |
static int | tailcall_frame_sniffer (const struct frame_unwind *self, frame_info_ptr this_frame, void **this_cache) |
void | dwarf2_tailcall_sniffer_first (frame_info_ptr this_frame, void **tailcall_cachep, const LONGEST *entry_cfa_sp_offsetp) |
static void | tailcall_frame_dealloc_cache (frame_info *self, void *this_cache) |
static struct gdbarch * | tailcall_frame_prev_arch (frame_info_ptr this_frame, void **this_prologue_cache) |
void | _initialize_tailcall_frame () |
Variables | |
static htab_t | cache_htab |
const struct frame_unwind | dwarf2_tailcall_frame_unwind |
void _initialize_tailcall_frame | ( | ) |
Definition at line 487 of file frame-tailcall.c.
Referenced by initialize_all_files().
|
static |
Definition at line 80 of file frame-tailcall.c.
References tailcall_cache::next_bottom_frame.
|
static |
Definition at line 149 of file frame-tailcall.c.
References cache_htab, frame_is_tailcall(), frame_info_ptr::get(), get_next_frame(), tailcall_cache::next_bottom_frame, and tailcall_cache::refc.
Referenced by tailcall_frame_sniffer().
|
static |
Definition at line 70 of file frame-tailcall.c.
References tailcall_cache::next_bottom_frame.
|
static |
Definition at line 93 of file frame-tailcall.c.
References cache_htab, tailcall_cache::next_bottom_frame, and tailcall_cache::refc.
Referenced by dwarf2_tailcall_sniffer_first().
|
static |
Definition at line 111 of file frame-tailcall.c.
References tailcall_cache::refc.
Referenced by tailcall_frame_sniffer().
|
static |
Definition at line 122 of file frame-tailcall.c.
References cache_htab, tailcall_cache::chain, tailcall_cache::refc, and xfree().
Referenced by tailcall_frame_dealloc_cache(), and tailcall_frame_sniffer().
struct value * dwarf2_tailcall_prev_register_first | ( | frame_info_ptr | this_frame, |
void ** | tailcall_cachep, | ||
int | regnum ) |
Definition at line 267 of file frame-tailcall.c.
References tailcall_cache::chain_levels, dwarf2_frame_cfa(), tailcall_cache::entry_cfa_sp_offset, existing_next_levels(), frame_unwind_got_address(), gdbarch_pc_regnum(), gdbarch_sp_regnum(), get_frame_arch(), pretend_pc(), tailcall_cache::prev_sp, tailcall_cache::prev_sp_p, and regnum.
Referenced by dwarf2_frame_prev_register(), and tailcall_frame_prev_register().
void dwarf2_tailcall_sniffer_first | ( | frame_info_ptr | this_frame, |
void ** | tailcall_cachep, | ||
const LONGEST * | entry_cfa_sp_offsetp ) |
Definition at line 366 of file frame-tailcall.c.
References cache_new_ref1(), call_site_find_chain(), tailcall_cache::chain, tailcall_cache::chain_levels, tailcall_cache::entry_cfa_sp_offset, entry_values_debug, exception_print(), frame_unwind_arch(), frame_unwind_register_unsigned(), gdb_stdout, gdbarch_sp_regnum(), gdbarch_unwind_pc(), get_frame_address_in_block(), call_site_chain::length, pretended_chain_levels(), tailcall_cache::prev_pc, tailcall_cache::prev_sp, tailcall_cache::prev_sp_p, and sp_regnum.
Referenced by dwarf2_frame_cache().
|
static |
Definition at line 176 of file frame-tailcall.c.
References frame_relative_level(), and tailcall_cache::next_bottom_frame.
Referenced by dwarf2_tailcall_prev_register_first(), pretend_pc(), tailcall_frame_sniffer(), and tailcall_frame_this_id().
|
static |
Definition at line 140 of file frame-tailcall.c.
References dwarf2_tailcall_frame_unwind, and frame_unwinder_is().
Referenced by cache_find().
|
static |
Definition at line 235 of file frame-tailcall.c.
References call_site_chain::call_site, call_site_chain::callees, call_site_chain::callers, tailcall_cache::chain, existing_next_levels(), call_site_chain::length, call_site::pc(), and tailcall_cache::prev_pc.
Referenced by dwarf2_tailcall_prev_register_first().
|
static |
Definition at line 192 of file frame-tailcall.c.
References call_site_chain::callees, call_site_chain::callers, tailcall_cache::chain, tailcall_cache::chain_levels, and call_site_chain::length.
Referenced by dwarf2_tailcall_sniffer_first().
|
static |
Definition at line 450 of file frame-tailcall.c.
References cache_unref().
|
static |
Definition at line 461 of file frame-tailcall.c.
References get_frame_arch(), and tailcall_cache::next_bottom_frame.
|
static |
Definition at line 297 of file frame-tailcall.c.
References dwarf2_tailcall_prev_register_first(), frame_unwind_got_register(), tailcall_cache::next_bottom_frame, and regnum.
|
static |
Definition at line 318 of file frame-tailcall.c.
References cache_find(), cache_ref(), cache_unref(), tailcall_cache::chain_levels, dwarf2_frame_unwinders_enabled_p, existing_next_levels(), and get_next_frame().
|
static |
Definition at line 213 of file frame-tailcall.c.
References tailcall_cache::chain_levels, existing_next_levels(), get_frame_id(), get_frame_pc(), and get_next_frame().
|
static |
Definition at line 34 of file frame-tailcall.c.
Referenced by cache_find(), cache_new_ref1(), and cache_unref().
const struct frame_unwind dwarf2_tailcall_frame_unwind |
Definition at line 472 of file frame-tailcall.c.
Referenced by dwarf2_frame_dealloc_cache(), frame_is_tailcall(), and get_frame_unwind_table().