GDB (xrefs)
Classes | Defines | Functions | Variables
/home/stan/gdb/src/gdb/ia64-libunwind-tdep.c File Reference
#include "defs.h"
#include "inferior.h"
#include "frame.h"
#include "frame-base.h"
#include "frame-unwind.h"
#include "gdbcore.h"
#include "gdbtypes.h"
#include "symtab.h"
#include "objfiles.h"
#include "regcache.h"
#include <dlfcn.h>
#include "gdb_assert.h"
#include "gdb_string.h"
#include "ia64-libunwind-tdep.h"
#include "complaints.h"

Go to the source code of this file.

Classes

struct  libunwind_frame_cache

Defines

#define __LITTLE_ENDIAN   1234
#define __BIG_ENDIAN   4321
#define STRINGIFY2(name)   #name
#define STRINGIFY(name)   STRINGIFY2(name)
#define LIBUNWIND_SO   "libunwind-" STRINGIFY(UNW_TARGET) ".so.8"
#define LIBUNWIND_SO_7   "libunwind-" STRINGIFY(UNW_TARGET) ".so.7"

Functions

static struct libunwind_descrlibunwind_descr (struct gdbarch *gdbarch)
static void * libunwind_descr_init (struct gdbarch *gdbarch)
void libunwind_frame_set_descr (struct gdbarch *gdbarch, struct libunwind_descr *descr)
static struct
libunwind_frame_cache
libunwind_frame_cache (struct frame_info *this_frame, void **this_cache)
void libunwind_frame_dealloc_cache (struct frame_info *self, void *this_cache)
unw_word_t libunwind_find_dyn_list (unw_addr_space_t as, unw_dyn_info_t *di, void *arg)
int libunwind_frame_sniffer (const struct frame_unwind *self, struct frame_info *this_frame, void **this_cache)
void libunwind_frame_this_id (struct frame_info *this_frame, void **this_cache, struct frame_id *this_id)
struct valuelibunwind_frame_prev_register (struct frame_info *this_frame, void **this_cache, int regnum)
int libunwind_search_unwind_table (void *as, long ip, void *di, void *pi, int need_unwind_info, void *args)
int libunwind_sigtramp_frame_sniffer (const struct frame_unwind *self, struct frame_info *this_frame, void **this_cache)
int libunwind_get_reg_special (struct gdbarch *gdbarch, struct regcache *regcache, int regnum, void *buf)
static int libunwind_load (void)
int libunwind_is_initialized (void)
void _initialize_libunwind_frame (void)

Variables

static int libunwind_initialized
static struct gdbarch_datalibunwind_descr_handle
static int(* unw_get_reg_p )(unw_cursor_t *, unw_regnum_t, unw_word_t *)
static int(* unw_get_fpreg_p )(unw_cursor_t *, unw_regnum_t, unw_fpreg_t *)
static int(* unw_get_saveloc_p )(unw_cursor_t *, unw_regnum_t, unw_save_loc_t *)
static int(* unw_is_signal_frame_p )(unw_cursor_t *)
static int(* unw_step_p )(unw_cursor_t *)
static int(* unw_init_remote_p )(unw_cursor_t *, unw_addr_space_t, void *)
static unw_addr_space_t(* unw_create_addr_space_p )(unw_accessors_t *, int)
static void(* unw_destroy_addr_space_p )(unw_addr_space_t)
static int(* unw_search_unwind_table_p )(unw_addr_space_t, unw_word_t, unw_dyn_info_t *, unw_proc_info_t *, int, void *)
static unw_word_t(* unw_find_dyn_list_p )(unw_addr_space_t, unw_dyn_info_t *, void *)
static char * get_reg_name = STRINGIFY(UNW_OBJ(get_reg))
static char * get_fpreg_name = STRINGIFY(UNW_OBJ(get_fpreg))
static char * get_saveloc_name = STRINGIFY(UNW_OBJ(get_save_loc))
static char * is_signal_frame_name = STRINGIFY(UNW_OBJ(is_signal_frame))
static char * step_name = STRINGIFY(UNW_OBJ(step))
static char * init_remote_name = STRINGIFY(UNW_OBJ(init_remote))
static char * create_addr_space_name = STRINGIFY(UNW_OBJ(create_addr_space))
static char * destroy_addr_space_name = STRINGIFY(UNW_OBJ(destroy_addr_space))
static char * search_unwind_table_name = STRINGIFY(UNW_OBJ(search_unwind_table))
static char * find_dyn_list_name = STRINGIFY(UNW_OBJ(find_dyn_list))

Define Documentation

#define __BIG_ENDIAN   4321
#define __LITTLE_ENDIAN   1234
#define LIBUNWIND_SO   "libunwind-" STRINGIFY(UNW_TARGET) ".so.8"

Definition at line 98 of file ia64-libunwind-tdep.c.

Referenced by libunwind_load().

#define LIBUNWIND_SO_7   "libunwind-" STRINGIFY(UNW_TARGET) ".so.7"

Definition at line 102 of file ia64-libunwind-tdep.c.

Referenced by libunwind_load().

#define STRINGIFY (   name)    STRINGIFY2(name)

Definition at line 93 of file ia64-libunwind-tdep.c.

#define STRINGIFY2 (   name)    #name

Definition at line 92 of file ia64-libunwind-tdep.c.


Function Documentation

void _initialize_libunwind_frame ( void  )
static struct libunwind_descr* libunwind_descr ( struct gdbarch gdbarch) [static, read]
static void* libunwind_descr_init ( struct gdbarch gdbarch) [static]
unw_word_t libunwind_find_dyn_list ( unw_addr_space_t  as,
unw_dyn_info_t *  di,
void *  arg 
)

Definition at line 243 of file ia64-libunwind-tdep.c.

References unw_find_dyn_list_p.

static struct libunwind_frame_cache* libunwind_frame_cache ( struct frame_info this_frame,
void **  this_cache 
) [static, read]
void libunwind_frame_dealloc_cache ( struct frame_info self,
void *  this_cache 
)

Definition at line 234 of file ia64-libunwind-tdep.c.

References libunwind_frame_cache::as, and unw_destroy_addr_space_p.

struct value* libunwind_frame_prev_register ( struct frame_info this_frame,
void **  this_cache,
int  regnum 
) [read]
void libunwind_frame_set_descr ( struct gdbarch gdbarch,
struct libunwind_descr descr 
)
int libunwind_frame_sniffer ( const struct frame_unwind self,
struct frame_info this_frame,
void **  this_cache 
)
void libunwind_frame_this_id ( struct frame_info this_frame,
void **  this_cache,
struct frame_id this_id 
)
int libunwind_get_reg_special ( struct gdbarch gdbarch,
struct regcache regcache,
int  regnum,
void *  buf 
)

Definition at line 567 of file ia64-libunwind-tdep.c.

References libunwind_initialized.

Referenced by ia64_pseudo_register_read().

static int libunwind_load ( void  ) [static]
int libunwind_search_unwind_table ( void *  as,
long  ip,
void *  di,
void *  pi,
int  need_unwind_info,
void *  args 
)

Definition at line 383 of file ia64-libunwind-tdep.c.

References unw_search_unwind_table_p.

int libunwind_sigtramp_frame_sniffer ( const struct frame_unwind self,
struct frame_info this_frame,
void **  this_cache 
)

Variable Documentation

char* create_addr_space_name = STRINGIFY(UNW_OBJ(create_addr_space)) [static]

Definition at line 111 of file ia64-libunwind-tdep.c.

char* destroy_addr_space_name = STRINGIFY(UNW_OBJ(destroy_addr_space)) [static]

Definition at line 112 of file ia64-libunwind-tdep.c.

char* find_dyn_list_name = STRINGIFY(UNW_OBJ(find_dyn_list)) [static]

Definition at line 115 of file ia64-libunwind-tdep.c.

char* get_fpreg_name = STRINGIFY(UNW_OBJ(get_fpreg)) [static]

Definition at line 106 of file ia64-libunwind-tdep.c.

char* get_reg_name = STRINGIFY(UNW_OBJ(get_reg)) [static]

Definition at line 105 of file ia64-libunwind-tdep.c.

Referenced by libunwind_load().

char* get_saveloc_name = STRINGIFY(UNW_OBJ(get_save_loc)) [static]

Definition at line 107 of file ia64-libunwind-tdep.c.

char* init_remote_name = STRINGIFY(UNW_OBJ(init_remote)) [static]

Definition at line 110 of file ia64-libunwind-tdep.c.

char* is_signal_frame_name = STRINGIFY(UNW_OBJ(is_signal_frame)) [static]

Definition at line 108 of file ia64-libunwind-tdep.c.

Definition at line 62 of file ia64-libunwind-tdep.c.

Definition at line 61 of file ia64-libunwind-tdep.c.

Referenced by _initialize_libunwind_frame(), and libunwind_is_initialized().

char* search_unwind_table_name = STRINGIFY(UNW_OBJ(search_unwind_table)) [static]

Definition at line 114 of file ia64-libunwind-tdep.c.

Referenced by libunwind_load().

char* step_name = STRINGIFY(UNW_OBJ(step)) [static]

Definition at line 109 of file ia64-libunwind-tdep.c.

unw_addr_space_t(* unw_create_addr_space_p)(unw_accessors_t *, int) [static]
void(* unw_destroy_addr_space_p)(unw_addr_space_t) [static]
unw_word_t(* unw_find_dyn_list_p)(unw_addr_space_t, unw_dyn_info_t *, void *) [static]

Definition at line 77 of file ia64-libunwind-tdep.c.

Referenced by libunwind_find_dyn_list(), and libunwind_load().

int(* unw_get_fpreg_p)(unw_cursor_t *, unw_regnum_t, unw_fpreg_t *) [static]
int(* unw_get_reg_p)(unw_cursor_t *, unw_regnum_t, unw_word_t *) [static]
int(* unw_get_saveloc_p)(unw_cursor_t *, unw_regnum_t, unw_save_loc_t *) [static]

Definition at line 67 of file ia64-libunwind-tdep.c.

Referenced by libunwind_frame_prev_register(), and libunwind_load().

int(* unw_init_remote_p)(unw_cursor_t *, unw_addr_space_t, void *) [static]
int(* unw_is_signal_frame_p)(unw_cursor_t *) [static]
int(* unw_search_unwind_table_p)(unw_addr_space_t, unw_word_t, unw_dyn_info_t *, unw_proc_info_t *, int, void *) [static]

Definition at line 74 of file ia64-libunwind-tdep.c.

Referenced by libunwind_load(), and libunwind_search_unwind_table().

int(* unw_step_p)(unw_cursor_t *) [static]

Definition at line 70 of file ia64-libunwind-tdep.c.

Referenced by libunwind_frame_cache(), and libunwind_load().

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Defines