GDB (xrefs)
Loading...
Searching...
No Matches
Classes | Macros | Typedefs | Functions | Variables
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 "ia64-libunwind-tdep.h"
#include "gdbsupport/preprocessor.h"

Go to the source code of this file.

Classes

struct  libunwind_frame_cache
 

Macros

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

Typedefs

typedef int unw_get_reg_p_ftype(unw_cursor_t *, unw_regnum_t, unw_word_t *)
 
typedef int unw_get_fpreg_p_ftype(unw_cursor_t *, unw_regnum_t, unw_fpreg_t *)
 
typedef int unw_get_saveloc_p_ftype(unw_cursor_t *, unw_regnum_t, unw_save_loc_t *)
 
typedef int unw_is_signal_frame_p_ftype(unw_cursor_t *)
 
typedef int unw_step_p_ftype(unw_cursor_t *)
 
typedef int unw_init_remote_p_ftype(unw_cursor_t *, unw_addr_space_t, void *)
 
typedef unw_addr_space_t unw_create_addr_space_p_ftype(unw_accessors_t *, int)
 
typedef void unw_destroy_addr_space_p_ftype(unw_addr_space_t)
 
typedef int unw_search_unwind_table_p_ftype(unw_addr_space_t, unw_word_t, unw_dyn_info_t *, unw_proc_info_t *, int, void *)
 
typedef unw_word_t unw_find_dyn_list_p_ftype(unw_addr_space_t, unw_dyn_info_t *, void *)
 

Functions

static struct libunwind_descr * libunwind_descr (struct gdbarch *gdbarch)
 
void libunwind_frame_set_descr (struct gdbarch *gdbarch, struct libunwind_descr *descr)
 
static struct libunwind_frame_cache * libunwind_frame_cache (frame_info_ptr this_frame, void **this_cache)
 
void libunwind_frame_dealloc_cache (frame_info_ptr 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, frame_info_ptr this_frame, void **this_cache)
 
void libunwind_frame_this_id (frame_info_ptr this_frame, void **this_cache, struct frame_id *this_id)
 
struct valuelibunwind_frame_prev_register (frame_info_ptr 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, frame_info_ptr this_frame, void **this_cache)
 
int libunwind_get_reg_special (struct gdbarch *gdbarch, readable_regcache *regcache, int regnum, void *buf)
 
static int libunwind_load (void)
 
int libunwind_is_initialized (void)
 
void _initialize_libunwind_frame ()
 

Variables

static int libunwind_initialized
 
static const registry< gdbarch >::key< libunwind_descrlibunwind_descr_handle
 
static unw_get_reg_p_ftypeunw_get_reg_p
 
static unw_get_fpreg_p_ftypeunw_get_fpreg_p
 
static unw_get_saveloc_p_ftypeunw_get_saveloc_p
 
static unw_is_signal_frame_p_ftypeunw_is_signal_frame_p
 
static unw_step_p_ftypeunw_step_p
 
static unw_init_remote_p_ftypeunw_init_remote_p
 
static unw_create_addr_space_p_ftypeunw_create_addr_space_p
 
static unw_destroy_addr_space_p_ftypeunw_destroy_addr_space_p
 
static unw_search_unwind_table_p_ftypeunw_search_unwind_table_p
 
static unw_find_dyn_list_p_ftypeunw_find_dyn_list_p
 
static const char * get_reg_name = STRINGIFY(UNW_OBJ(get_reg))
 
static const char * get_fpreg_name = STRINGIFY(UNW_OBJ(get_fpreg))
 
static const char * get_saveloc_name = STRINGIFY(UNW_OBJ(get_save_loc))
 
static const char * is_signal_frame_name = STRINGIFY(UNW_OBJ(is_signal_frame))
 
static const char * step_name = STRINGIFY(UNW_OBJ(step))
 
static const char * init_remote_name = STRINGIFY(UNW_OBJ(init_remote))
 
static const char * create_addr_space_name = STRINGIFY(UNW_OBJ(create_addr_space))
 
static const char * destroy_addr_space_name = STRINGIFY(UNW_OBJ(destroy_addr_space))
 
static const char * search_unwind_table_name = STRINGIFY(UNW_OBJ(search_unwind_table))
 
static const char * find_dyn_list_name = STRINGIFY(UNW_OBJ(find_dyn_list))
 

Macro Definition Documentation

◆ __BIG_ENDIAN

#define __BIG_ENDIAN   4321

◆ __LITTLE_ENDIAN

#define __LITTLE_ENDIAN   1234

◆ LIBUNWIND_SO

#define LIBUNWIND_SO   "libunwind-" STRINGIFY(UNW_TARGET) ".so.8"

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

Referenced by libunwind_load().

◆ LIBUNWIND_SO_7

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

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

Referenced by libunwind_load().

Typedef Documentation

◆ unw_create_addr_space_p_ftype

typedef unw_addr_space_t unw_create_addr_space_p_ftype(unw_accessors_t *, int)

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

◆ unw_destroy_addr_space_p_ftype

typedef void unw_destroy_addr_space_p_ftype(unw_addr_space_t)

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

◆ unw_find_dyn_list_p_ftype

typedef unw_word_t unw_find_dyn_list_p_ftype(unw_addr_space_t, unw_dyn_info_t *, void *)

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

◆ unw_get_fpreg_p_ftype

typedef int unw_get_fpreg_p_ftype(unw_cursor_t *, unw_regnum_t, unw_fpreg_t *)

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

◆ unw_get_reg_p_ftype

typedef int unw_get_reg_p_ftype(unw_cursor_t *, unw_regnum_t, unw_word_t *)

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

◆ unw_get_saveloc_p_ftype

typedef int unw_get_saveloc_p_ftype(unw_cursor_t *, unw_regnum_t, unw_save_loc_t *)

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

◆ unw_init_remote_p_ftype

typedef int unw_init_remote_p_ftype(unw_cursor_t *, unw_addr_space_t, void *)

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

◆ unw_is_signal_frame_p_ftype

typedef int unw_is_signal_frame_p_ftype(unw_cursor_t *)

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

◆ unw_search_unwind_table_p_ftype

typedef int unw_search_unwind_table_p_ftype(unw_addr_space_t, unw_word_t, unw_dyn_info_t *, unw_proc_info_t *, int, void *)

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

◆ unw_step_p_ftype

typedef int unw_step_p_ftype(unw_cursor_t *)

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

Function Documentation

◆ _initialize_libunwind_frame()

void _initialize_libunwind_frame ( )

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

References libunwind_initialized, and libunwind_load().

◆ libunwind_descr()

static struct libunwind_descr * libunwind_descr ( struct gdbarch * gdbarch)
static

◆ libunwind_find_dyn_list()

unw_word_t libunwind_find_dyn_list ( unw_addr_space_t as,
unw_dyn_info_t * di,
void * arg )

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

References libunwind_frame_cache::as, and unw_find_dyn_list_p.

◆ libunwind_frame_cache()

static struct libunwind_frame_cache * libunwind_frame_cache ( frame_info_ptr this_frame,
void ** this_cache )
static

◆ libunwind_frame_dealloc_cache()

void libunwind_frame_dealloc_cache ( frame_info_ptr self,
void * this_cache )

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

References libunwind_frame_cache::as, and unw_destroy_addr_space_p.

◆ libunwind_frame_prev_register()

struct value * libunwind_frame_prev_register ( frame_info_ptr this_frame,
void ** this_cache,
int regnum )

◆ libunwind_frame_set_descr()

void libunwind_frame_set_descr ( struct gdbarch * gdbarch,
struct libunwind_descr * descr )

◆ libunwind_frame_sniffer()

int libunwind_frame_sniffer ( const struct frame_unwind * self,
frame_info_ptr this_frame,
void ** this_cache )

◆ libunwind_frame_this_id()

void libunwind_frame_this_id ( frame_info_ptr this_frame,
void ** this_cache,
struct frame_id * this_id )

◆ libunwind_get_reg_special()

int libunwind_get_reg_special ( struct gdbarch * gdbarch,
readable_regcache * regcache,
int regnum,
void * buf )

◆ libunwind_is_initialized()

int libunwind_is_initialized ( void )

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

References libunwind_initialized.

Referenced by ia64_pseudo_register_read().

◆ libunwind_load()

static int libunwind_load ( void )
static

◆ libunwind_search_unwind_table()

int libunwind_search_unwind_table ( void * as,
long ip,
void * di,
void * pi,
int need_unwind_info,
void * args )

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

References unw_search_unwind_table_p.

◆ libunwind_sigtramp_frame_sniffer()

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

Variable Documentation

◆ create_addr_space_name

const char* create_addr_space_name = STRINGIFY(UNW_OBJ(create_addr_space))
static

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

Referenced by libunwind_load().

◆ destroy_addr_space_name

const char* destroy_addr_space_name = STRINGIFY(UNW_OBJ(destroy_addr_space))
static

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

Referenced by libunwind_load().

◆ find_dyn_list_name

const char* find_dyn_list_name = STRINGIFY(UNW_OBJ(find_dyn_list))
static

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

Referenced by libunwind_load().

◆ get_fpreg_name

const char* get_fpreg_name = STRINGIFY(UNW_OBJ(get_fpreg))
static

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

Referenced by libunwind_load().

◆ get_reg_name

const char* get_reg_name = STRINGIFY(UNW_OBJ(get_reg))
static

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

Referenced by libunwind_load().

◆ get_saveloc_name

const char* get_saveloc_name = STRINGIFY(UNW_OBJ(get_save_loc))
static

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

Referenced by libunwind_load().

◆ init_remote_name

const char* init_remote_name = STRINGIFY(UNW_OBJ(init_remote))
static

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

Referenced by libunwind_load().

◆ is_signal_frame_name

const char* is_signal_frame_name = STRINGIFY(UNW_OBJ(is_signal_frame))
static

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

Referenced by libunwind_load().

◆ libunwind_descr_handle

const registry<gdbarch>::key<libunwind_descr> libunwind_descr_handle
static

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

Referenced by libunwind_descr().

◆ libunwind_initialized

int libunwind_initialized
static

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

Referenced by _initialize_libunwind_frame(), and libunwind_is_initialized().

◆ search_unwind_table_name

const char* search_unwind_table_name = STRINGIFY(UNW_OBJ(search_unwind_table))
static

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

Referenced by libunwind_load().

◆ step_name

const char* step_name = STRINGIFY(UNW_OBJ(step))
static

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

Referenced by libunwind_load().

◆ unw_create_addr_space_p

unw_create_addr_space_p_ftype* unw_create_addr_space_p
static

◆ unw_destroy_addr_space_p

unw_destroy_addr_space_p_ftype* unw_destroy_addr_space_p
static

◆ unw_find_dyn_list_p

unw_find_dyn_list_p_ftype* unw_find_dyn_list_p
static

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

Referenced by libunwind_find_dyn_list(), and libunwind_load().

◆ unw_get_fpreg_p

unw_get_fpreg_p_ftype* unw_get_fpreg_p
static

◆ unw_get_reg_p

unw_get_reg_p_ftype* unw_get_reg_p
static

◆ unw_get_saveloc_p

unw_get_saveloc_p_ftype* unw_get_saveloc_p
static

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

Referenced by libunwind_frame_prev_register(), and libunwind_load().

◆ unw_init_remote_p

unw_init_remote_p_ftype* unw_init_remote_p
static

◆ unw_is_signal_frame_p

unw_is_signal_frame_p_ftype* unw_is_signal_frame_p
static

◆ unw_search_unwind_table_p

unw_search_unwind_table_p_ftype* unw_search_unwind_table_p
static

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

Referenced by libunwind_load(), and libunwind_search_unwind_table().

◆ unw_step_p

unw_step_p_ftype* unw_step_p
static

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

Referenced by libunwind_frame_cache(), and libunwind_load().