#include "inferior.h"
#include "gdbcore.h"
#include <sys/ptrace.h>
-#include <setjmp.h> /* For JB_XXX. */
-
#include <sys/types.h>
#include <sys/param.h>
-#include "gdbcore.h"
-
-/* These are needed on various systems to expand REGISTER_U_ADDR. */
-#include <sys/dir.h>
-#include <sys/file.h>
-#include <sys/stat.h>
#include <sys/user.h>
-#include <sys/ptrace.h>
+#undef JB_S0
+#undef JB_S1
+#undef JB_S2
+#undef JB_S3
+#undef JB_S4
+#undef JB_S5
+#undef JB_S6
+#undef JB_S7
+#undef JB_SP
+#undef JB_S8
+#undef JB_PC
+#undef JB_SR
+#undef NJBREGS
+#include <setjmp.h> /* For JB_XXX. */
/* Size of elements in jmpbuf */
: regno >= FP0_REGNUM ? FPR_BASE + (regno - FP0_REGNUM) \
: 0)
-static const char zerobuf[MAX_REGISTER_RAW_SIZE];
+static char zerobuf[MAX_REGISTER_RAW_SIZE] = {0};
/* Get all registers from the inferior */
|| regno == FCRIR_REGNUM || regno == FP_REGNUM
|| (regno >= FIRST_EMBED_REGNUM && regno <= LAST_EMBED_REGNUM))
continue;
- regaddr = register_addr (regno, 1);
+ regaddr = REGISTER_PTRACE_ADDR (regno);
errno = 0;
ptrace (6, inferior_pid, (PTRACE_ARG3_TYPE) regaddr,
read_register (regno));
CORE_ADDR *pc;
{
CORE_ADDR jb_addr;
+ char buf[TARGET_PTR_BIT / TARGET_CHAR_BIT];
- jb_addr = read_register(A0_REGNUM);
+ jb_addr = read_register (A0_REGNUM);
- if (target_read_memory(jb_addr + JB_PC * JB_ELEMENT_SIZE, pc,
- sizeof(CORE_ADDR)))
+ if (target_read_memory (jb_addr + JB_PC * JB_ELEMENT_SIZE, buf,
+ TARGET_PTR_BIT / TARGET_CHAR_BIT))
return 0;
- SWAP_TARGET_AND_HOST(pc, sizeof(CORE_ADDR));
+ *pc = extract_address (buf, TARGET_PTR_BIT / TARGET_CHAR_BIT);
return 1;
}
core file without a upage, reg_ptr will be zero and this is all a big
NOP. */
if (reg_ptr > core_reg_size)
+#ifdef KERNEL_U_ADDR
reg_ptr -= KERNEL_U_ADDR;
+#else
+ error ("Old mips core file can't be processed on this machine.");
+#endif
for (regno = 0; regno < NUM_REGS; regno++)
{