26 #include <sys/types.h> 27 #include <sys/ptrace.h> 28 #include <sys/sysctl.h> 30 #include <machine/reg.h> 41 #define REG_OFFSET(member) offsetof (struct reg, member) 98 #include <machine/pcb.h> 99 #include <osreldate.h> 116 if (pcb->pcb_rsp == 0)
128 #if (__FreeBSD_version < 800075) && (__FreeBSD_kernel_version < 800075) 149 #ifdef PT_GETXSTATE_INFO 150 static int xsave_probed;
151 static uint64_t xcr0;
159 is64 = (regs.r_cs == GSEL (GUCODE_SEL, SEL_UPL));
160 #ifdef PT_GETXSTATE_INFO 163 struct ptrace_xstate_info info;
169 xcr0 = info.xsave_mask;
212 #define SC_REG_OFFSET amd64fbsd_sc_reg_offset 218 #define SC_RIP_OFFSET SC_REG_OFFSET[AMD64_RIP_REGNUM] 219 #define SC_RSP_OFFSET SC_REG_OFFSET[AMD64_RSP_REGNUM] 220 #define SC_RBP_OFFSET SC_REG_OFFSET[AMD64_RBP_REGNUM] 224 offset = offsetof (
struct sigcontext, sc_rip);
229 offsetof (struct sigcontext, sc_rip) yields %d instead of %d.\n\ 230 Please report this to <bug-gdb@gnu.org>."),
237 offset = offsetof (
struct sigcontext, sc_rsp);
242 offsetof (struct sigcontext, sc_rsp) yields %d instead of %d.\n\ 243 Please report this to <bug-gdb@gnu.org>."),
250 offset = offsetof (
struct sigcontext, sc_rbp);
255 offsetof (struct sigcontext, sc_rbp) yields %d instead of %d.\n\ 256 Please report this to <bug-gdb@gnu.org>."),
262 #ifdef KERN_PROC_SIGTRAMP 274 struct kinfo_sigtramp kst;
279 mib[2] = KERN_PROC_SIGTRAMP;
282 if (sysctl (mib, 4, &kst, &len, NULL, 0) == 0)
CORE_ADDR amd64fbsd_sigtramp_start_addr
const struct target_desc *(* to_read_description)(struct target_ops *ops) TARGET_DEFAULT_RETURN(NULL)
#define REG_OFFSET(member)
#define X86_XSTATE_SSE_MASK
int ptid_get_pid(const ptid_t &ptid)
void fbsd_nat_add_target(struct target_ops *t)
static int amd64fbsd_supply_pcb(struct regcache *regcache, struct pcb *pcb)
void warning(const char *fmt,...)
CORE_ADDR amd64fbsd_sigtramp_end_addr
int * amd64_native_gregset32_reg_offset
static int amd64fbsd32_r_reg_offset[I386_NUM_GREGS]
int * amd64_native_gregset64_reg_offset
void _initialize_amd64fbsd_nat(void)
static int amd64fbsd64_r_reg_offset[]
void void void void void void void void void perror_with_name(const char *string) ATTRIBUTE_NORETURN
struct target_ops * amd64bsd_target(void)
void regcache_raw_supply(struct regcache *regcache, int regnum, const void *buf)
void bsd_kvm_add_target(int(*supply_pcb)(struct regcache *, struct pcb *))
static const struct target_desc * amd64fbsd_read_description(struct target_ops *ops)
const struct target_desc * amd64_target_description(uint64_t xcr0)
const struct target_desc * i386_target_description(uint64_t xcr0)