GDB (xrefs)
Classes | Functions | Variables
/home/stan/gdb/src/gdb/dwarf2-frame-tailcall.c File Reference
#include "defs.h"
#include "gdb_assert.h"
#include "frame.h"
#include "dwarf2-frame-tailcall.h"
#include "dwarf2loc.h"
#include "frame-unwind.h"
#include "block.h"
#include "hashtab.h"
#include "exceptions.h"
#include "gdbtypes.h"
#include "regcache.h"
#include "value.h"
#include "dwarf2-frame.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_cachecache_new_ref1 (struct frame_info *next_bottom_frame)
static void cache_ref (struct tailcall_cache *cache)
static void cache_unref (struct tailcall_cache *cache)
static int frame_is_tailcall (struct frame_info *fi)
static struct tailcall_cachecache_find (struct frame_info *fi)
static int existing_next_levels (struct frame_info *this_frame, struct tailcall_cache *cache)
static int pretended_chain_levels (struct call_site_chain *chain)
static void tailcall_frame_this_id (struct frame_info *this_frame, void **this_cache, struct frame_id *this_id)
static CORE_ADDR pretend_pc (struct frame_info *this_frame, struct tailcall_cache *cache)
struct valuedwarf2_tailcall_prev_register_first (struct frame_info *this_frame, void **tailcall_cachep, int regnum)
static struct valuetailcall_frame_prev_register (struct frame_info *this_frame, void **this_cache, int regnum)
static int tailcall_frame_sniffer (const struct frame_unwind *self, struct frame_info *this_frame, void **this_cache)
void dwarf2_tailcall_sniffer_first (struct frame_info *this_frame, void **tailcall_cachep, const LONGEST *entry_cfa_sp_offsetp)
static void tailcall_frame_dealloc_cache (struct frame_info *self, void *this_cache)
static struct gdbarchtailcall_frame_prev_arch (struct frame_info *this_frame, void **this_prologue_cache)
void _initialize_tailcall_frame (void)

Variables

static htab_t cache_htab
struct frame_unwind dwarf2_tailcall_frame_unwind
initialize_file_ftype _initialize_tailcall_frame

Function Documentation

void _initialize_tailcall_frame ( void  )
static int cache_eq ( const void *  arg1,
const void *  arg2 
) [static]

Definition at line 81 of file dwarf2-frame-tailcall.c.

References tailcall_cache::next_bottom_frame.

Referenced by _initialize_tailcall_frame().

static struct tailcall_cache* cache_find ( struct frame_info fi) [static, read]

Definition at line 152 of file dwarf2-frame-tailcall.c.

References cache_htab, frame_is_tailcall(), gdb_assert, and get_next_frame().

Referenced by tailcall_frame_sniffer().

static hashval_t cache_hash ( const void *  arg) [static]

Definition at line 71 of file dwarf2-frame-tailcall.c.

References tailcall_cache::next_bottom_frame.

Referenced by _initialize_tailcall_frame().

static struct tailcall_cache* cache_new_ref1 ( struct frame_info next_bottom_frame) [static, read]
static void cache_ref ( struct tailcall_cache cache) [static]

Definition at line 114 of file dwarf2-frame-tailcall.c.

References gdb_assert, and tailcall_cache::refc.

Referenced by tailcall_frame_sniffer().

static void cache_unref ( struct tailcall_cache cache) [static]
struct value* dwarf2_tailcall_prev_register_first ( struct frame_info this_frame,
void **  tailcall_cachep,
int  regnum 
) [read]
void dwarf2_tailcall_sniffer_first ( struct frame_info this_frame,
void **  tailcall_cachep,
const LONGEST entry_cfa_sp_offsetp 
)
static int existing_next_levels ( struct frame_info this_frame,
struct tailcall_cache cache 
) [static]
static int frame_is_tailcall ( struct frame_info fi) [static]

Definition at line 143 of file dwarf2-frame-tailcall.c.

References dwarf2_tailcall_frame_unwind, and frame_unwinder_is().

Referenced by cache_find().

static CORE_ADDR pretend_pc ( struct frame_info this_frame,
struct tailcall_cache cache 
) [static]
static int pretended_chain_levels ( struct call_site_chain chain) [static]
static void tailcall_frame_dealloc_cache ( struct frame_info self,
void *  this_cache 
) [static]

Definition at line 435 of file dwarf2-frame-tailcall.c.

References cache_unref().

static struct gdbarch* tailcall_frame_prev_arch ( struct frame_info this_frame,
void **  this_prologue_cache 
) [static, read]

Definition at line 446 of file dwarf2-frame-tailcall.c.

References get_frame_arch(), and tailcall_cache::next_bottom_frame.

static struct value* tailcall_frame_prev_register ( struct frame_info this_frame,
void **  this_cache,
int  regnum 
) [static, read]
static int tailcall_frame_sniffer ( const struct frame_unwind self,
struct frame_info this_frame,
void **  this_cache 
) [static]
static void tailcall_frame_this_id ( struct frame_info this_frame,
void **  this_cache,
struct frame_id this_id 
) [static]

Variable Documentation

htab_t cache_htab [static]
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Defines