GDB (xrefs)
Classes | Defines | Functions | Variables
/home/stan/gdb/src/gdb/hppa-hpux-tdep.c File Reference
#include "defs.h"
#include "arch-utils.h"
#include "gdbcore.h"
#include "osabi.h"
#include "frame.h"
#include "frame-unwind.h"
#include "trad-frame.h"
#include "symtab.h"
#include "objfiles.h"
#include "inferior.h"
#include "infcall.h"
#include "observer.h"
#include "hppa-tdep.h"
#include "solib-som.h"
#include "solib-pa64.h"
#include "regset.h"
#include "regcache.h"
#include "exceptions.h"
#include "gdb_string.h"

Go to the source code of this file.

Classes

struct  hppa_hpux_sigtramp_unwind_cache

Defines

#define IS_32BIT_TARGET(_gdbarch)   ((gdbarch_tdep (_gdbarch))->bytes_per_address == 4)
#define HPPA_HPUX_SS_WIDEREGS   0x40
#define HPPA_HPUX_SS_FLAGS_OFFSET   0
#define HPPA_HPUX_SS_NARROW_OFFSET   4
#define HPPA_HPUX_SS_FPBLOCK_OFFSET   256
#define HPPA_HPUX_SS_WIDE_OFFSET   640
#define HPPA_HPUX_SAVE_STATE_SIZE   1152
#define HPPA_HPUX_PA89_SAVE_STATE_SIZE   512
#define INSN(I1, I2, I3, I4)   0x ## I1, 0x ## I2, 0x ## I3, 0x ## I4
#define HPPA_HPUX_SS_INSYSCALL   0x02

Functions

void _initialize_hppa_hpux_tdep (void)
static int hppa32_hpux_in_solib_call_trampoline (struct gdbarch *gdbarch, CORE_ADDR pc)
static int hppa64_hpux_in_solib_call_trampoline (struct gdbarch *gdbarch, CORE_ADDR pc)
static int hppa_hpux_in_solib_return_trampoline (struct gdbarch *gdbarch, CORE_ADDR pc, const char *name)
static CORE_ADDR hppa_hpux_skip_trampoline_code (struct frame_info *frame, CORE_ADDR pc)
static void hppa_skip_permanent_breakpoint (struct regcache *regcache)
static struct
hppa_hpux_sigtramp_unwind_cache
hppa_hpux_sigtramp_frame_unwind_cache (struct frame_info *this_frame, void **this_cache)
static void hppa_hpux_sigtramp_frame_this_id (struct frame_info *this_frame, void **this_prologue_cache, struct frame_id *this_id)
static struct valuehppa_hpux_sigtramp_frame_prev_register (struct frame_info *this_frame, void **this_prologue_cache, int regnum)
static int hppa_hpux_sigtramp_unwind_sniffer (const struct frame_unwind *self, struct frame_info *this_frame, void **this_cache)
static CORE_ADDR hppa32_hpux_find_global_pointer (struct gdbarch *gdbarch, struct value *function)
static CORE_ADDR hppa64_hpux_find_global_pointer (struct gdbarch *gdbarch, struct value *function)
static CORE_ADDR hppa_hpux_search_pattern (struct gdbarch *gdbarch, CORE_ADDR start, CORE_ADDR end, unsigned int *patterns, int count)
static CORE_ADDR hppa32_hpux_search_dummy_call_sequence (struct gdbarch *gdbarch, CORE_ADDR pc, int *argreg)
static CORE_ADDR hppa64_hpux_search_dummy_call_sequence (struct gdbarch *gdbarch, CORE_ADDR pc, int *argreg)
static CORE_ADDR hppa_hpux_find_import_stub_for_addr (CORE_ADDR funcaddr)
static int hppa_hpux_sr_for_addr (struct gdbarch *gdbarch, CORE_ADDR addr)
static CORE_ADDR hppa_hpux_find_dummy_bpaddr (CORE_ADDR addr)
static CORE_ADDR hppa_hpux_push_dummy_code (struct gdbarch *gdbarch, CORE_ADDR sp, CORE_ADDR funcaddr, struct value **args, int nargs, struct type *value_type, CORE_ADDR *real_pc, CORE_ADDR *bp_addr, struct regcache *regcache)
static void hppa_hpux_supply_ss_narrow (struct regcache *regcache, int regnum, const gdb_byte *save_state)
static void hppa_hpux_supply_ss_fpblock (struct regcache *regcache, int regnum, const gdb_byte *save_state)
static void hppa_hpux_supply_ss_wide (struct regcache *regcache, int regnum, const gdb_byte *save_state)
static void hppa_hpux_supply_save_state (const struct regset *regset, struct regcache *regcache, int regnum, const void *regs, size_t len)
static struct regsethppa_hpux_regset_from_core_section (struct gdbarch *gdbarch, const char *sect_name, size_t sect_size)
static CORE_ADDR hppa_hpux_read_pc (struct regcache *regcache)
static void hppa_hpux_write_pc (struct regcache *regcache, CORE_ADDR pc)
static CORE_ADDR hppa_hpux_unwind_pc (struct gdbarch *gdbarch, struct frame_info *next_frame)
static void hppa_hpux_unwind_adjust_stub (struct frame_info *this_frame, CORE_ADDR base, struct trad_frame_saved_reg *saved_regs)
static void hppa_hpux_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch)
static void hppa_hpux_som_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch)
static void hppa_hpux_elf_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch)
static enum gdb_osabi hppa_hpux_core_osabi_sniffer (bfd *abfd)

Variables

initialize_file_ftype _initialize_hppa_hpux_tdep
static int hppa_hpux_tramp_reg []
static struct frame_unwind hppa_hpux_sigtramp_frame_unwind
static unsigned int ldsid_pattern []
static struct regset hppa_hpux_regset

Define Documentation

Definition at line 61 of file hppa-hpux-tdep.c.

Referenced by hppa_hpux_regset_from_core_section().

#define HPPA_HPUX_SAVE_STATE_SIZE   1152

Definition at line 57 of file hppa-hpux-tdep.c.

Referenced by hppa_hpux_supply_save_state().

#define HPPA_HPUX_SS_FLAGS_OFFSET   0
#define HPPA_HPUX_SS_FPBLOCK_OFFSET   256

Definition at line 53 of file hppa-hpux-tdep.c.

Referenced by hppa_hpux_supply_ss_fpblock().

#define HPPA_HPUX_SS_INSYSCALL   0x02

Definition at line 1391 of file hppa-hpux-tdep.c.

Referenced by hppa_hpux_read_pc(), hppa_hpux_unwind_pc(), and hppa_hpux_write_pc().

#define HPPA_HPUX_SS_WIDE_OFFSET   640
#define HPPA_HPUX_SS_WIDEREGS   0x40
#define INSN (   I1,
  I2,
  I3,
  I4 
)    0x ## I1, 0x ## I2, 0x ## I3, 0x ## I4
#define IS_32BIT_TARGET (   _gdbarch)    ((gdbarch_tdep (_gdbarch))->bytes_per_address == 4)

Function Documentation

void _initialize_hppa_hpux_tdep ( void  )
static CORE_ADDR hppa32_hpux_find_global_pointer ( struct gdbarch gdbarch,
struct value function 
) [static]
static int hppa32_hpux_in_solib_call_trampoline ( struct gdbarch gdbarch,
CORE_ADDR  pc 
) [static]
static CORE_ADDR hppa32_hpux_search_dummy_call_sequence ( struct gdbarch gdbarch,
CORE_ADDR  pc,
int argreg 
) [static]
static CORE_ADDR hppa64_hpux_find_global_pointer ( struct gdbarch gdbarch,
struct value function 
) [static]
static int hppa64_hpux_in_solib_call_trampoline ( struct gdbarch gdbarch,
CORE_ADDR  pc 
) [static]
static CORE_ADDR hppa64_hpux_search_dummy_call_sequence ( struct gdbarch gdbarch,
CORE_ADDR  pc,
int argreg 
) [static]
static enum gdb_osabi hppa_hpux_core_osabi_sniffer ( bfd *  abfd) [static]

Definition at line 1532 of file hppa-hpux-tdep.c.

References GDB_OSABI_HPUX_ELF, GDB_OSABI_HPUX_SOM, GDB_OSABI_UNKNOWN, and size.

static void hppa_hpux_elf_init_abi ( struct gdbarch_info  info,
struct gdbarch gdbarch 
) [static]
static CORE_ADDR hppa_hpux_find_dummy_bpaddr ( CORE_ADDR  addr) [static]
static int hppa_hpux_in_solib_return_trampoline ( struct gdbarch gdbarch,
CORE_ADDR  pc,
const char *  name 
) [static]
static void hppa_hpux_init_abi ( struct gdbarch_info  info,
struct gdbarch gdbarch 
) [static]
static CORE_ADDR hppa_hpux_push_dummy_code ( struct gdbarch gdbarch,
CORE_ADDR  sp,
CORE_ADDR  funcaddr,
struct value **  args,
int  nargs,
struct type value_type,
CORE_ADDR real_pc,
CORE_ADDR bp_addr,
struct regcache regcache 
) [static]
static CORE_ADDR hppa_hpux_read_pc ( struct regcache regcache) [static]
static struct regset* hppa_hpux_regset_from_core_section ( struct gdbarch gdbarch,
const char *  sect_name,
size_t  sect_size 
) [static, read]

Definition at line 1377 of file hppa-hpux-tdep.c.

References HPPA_HPUX_PA89_SAVE_STATE_SIZE, and hppa_hpux_regset.

Referenced by hppa_hpux_init_abi().

static CORE_ADDR hppa_hpux_search_pattern ( struct gdbarch gdbarch,
CORE_ADDR  start,
CORE_ADDR  end,
unsigned int patterns,
int  count 
) [static]
static struct value* hppa_hpux_sigtramp_frame_prev_register ( struct frame_info this_frame,
void **  this_prologue_cache,
int  regnum 
) [static, read]
static void hppa_hpux_sigtramp_frame_this_id ( struct frame_info this_frame,
void **  this_prologue_cache,
struct frame_id this_id 
) [static]
static struct hppa_hpux_sigtramp_unwind_cache* hppa_hpux_sigtramp_frame_unwind_cache ( struct frame_info this_frame,
void **  this_cache 
) [static, read]
static int hppa_hpux_sigtramp_unwind_sniffer ( const struct frame_unwind self,
struct frame_info this_frame,
void **  this_cache 
) [static]
static CORE_ADDR hppa_hpux_skip_trampoline_code ( struct frame_info frame,
CORE_ADDR  pc 
) [static]
static void hppa_hpux_som_init_abi ( struct gdbarch_info  info,
struct gdbarch gdbarch 
) [static]
static int hppa_hpux_sr_for_addr ( struct gdbarch gdbarch,
CORE_ADDR  addr 
) [static]

Definition at line 1052 of file hppa-hpux-tdep.c.

References gdbarch_tdep::bytes_per_address, and gdbarch_tdep().

Referenced by hppa_hpux_push_dummy_code().

static void hppa_hpux_supply_save_state ( const struct regset regset,
struct regcache regcache,
int  regnum,
const void *  regs,
size_t  len 
) [static]
static void hppa_hpux_supply_ss_fpblock ( struct regcache regcache,
int  regnum,
const gdb_byte save_state 
) [static]
static void hppa_hpux_supply_ss_narrow ( struct regcache regcache,
int  regnum,
const gdb_byte save_state 
) [static]
static void hppa_hpux_supply_ss_wide ( struct regcache regcache,
int  regnum,
const gdb_byte save_state 
) [static]
static void hppa_hpux_unwind_adjust_stub ( struct frame_info this_frame,
CORE_ADDR  base,
struct trad_frame_saved_reg saved_regs 
) [static]
static CORE_ADDR hppa_hpux_unwind_pc ( struct gdbarch gdbarch,
struct frame_info next_frame 
) [static]
static void hppa_hpux_write_pc ( struct regcache regcache,
CORE_ADDR  pc 
) [static]
static void hppa_skip_permanent_breakpoint ( struct regcache regcache) [static]

Variable Documentation

Definition at line 1559 of file hppa-hpux-tdep.c.

Referenced by initialize_all_files().

struct regset hppa_hpux_regset [static]
Initial value:

Definition at line 1370 of file hppa-hpux-tdep.c.

Referenced by hppa_hpux_regset_from_core_section().

Definition at line 581 of file hppa-hpux-tdep.c.

Referenced by hppa_hpux_sigtramp_frame_unwind_cache().

unsigned int ldsid_pattern[] [static]
Initial value:
 {
  0x000010a0, 
  0x00001820, 
  0xe0000000  
}

Definition at line 796 of file hppa-hpux-tdep.c.

Referenced by hppa32_hpux_search_dummy_call_sequence().

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Defines