/* IBM RS/6000 native-dependent code for GDB, the GNU debugger.
- Copyright 1986, 1987, 1989, 1991, 1992, 1993, 1994, 1995, 1996,
- 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004 Free Software
- Foundation, Inc.
+ Copyright (C) 1986, 1987, 1989, 1991, 1992, 1993, 1994, 1995, 1996, 1997,
+ 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2007
+ Free Software Foundation, Inc.
This file is part of GDB.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place - Suite 330,
- Boston, MA 02111-1307, USA. */
+ Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ Boston, MA 02110-1301, USA. */
#include "defs.h"
#include "inferior.h"
#include "regcache.h"
#include "arch-utils.h"
#include "ppc-tdep.h"
+#include "rs6000-tdep.h"
#include "exec.h"
#include <sys/ptrace.h>
us in the target stack anyway. */
int
-child_xfer_memory (CORE_ADDR memaddr, char *myaddr, int len,
+child_xfer_memory (CORE_ADDR memaddr, gdb_byte *myaddr, int len,
int write, struct mem_attrib *attrib,
struct target_ops *target)
{
static void
exec_one_dummy_insn (void)
{
-#define DUMMY_INSN_ADDR (TEXT_SEGMENT_BASE)+0x200
+#define DUMMY_INSN_ADDR gdbarch_tdep (current_gdbarch)->text_segment_base+0x200
- char shadow_contents[BREAKPOINT_MAX]; /* Stash old bkpt addr contents */
int ret, status, pid;
CORE_ADDR prev_pc;
+ void *bp;
/* We plant one dummy breakpoint into DUMMY_INSN_ADDR address. We
assume that this address will never be executed again by the real
code. */
- target_insert_breakpoint (DUMMY_INSN_ADDR, shadow_contents);
+ bp = deprecated_insert_raw_breakpoint (DUMMY_INSN_ADDR);
/* You might think this could be done with a single ptrace call, and
you'd be correct for just about every platform I've ever worked
while (pid != PIDGET (inferior_ptid));
write_pc (prev_pc);
- target_remove_breakpoint (DUMMY_INSN_ADDR, shadow_contents);
+ deprecated_remove_raw_breakpoint (bp);
}
/* Fetch registers from the register section in core bfd. */
/* Set the current architecture from the host running GDB. Called when
starting a child process. */
-static void
-set_host_arch (int pid)
+void
+rs6000_create_inferior (int pid)
{
enum bfd_architecture arch;
unsigned long mach;
info.abfd = exec_bfd;
if (!gdbarch_update_p (info))
- {
- internal_error (__FILE__, __LINE__,
- "set_host_arch: failed to select architecture");
- }
+ internal_error (__FILE__, __LINE__,
+ _("rs6000_create_inferior: failed to select architecture"));
}
\f
if (errno == ENOMEM)
load_segs *= 2;
else
- perror_with_name ("ptrace ldinfo");
+ perror_with_name (_("ptrace ldinfo"));
}
else
{
when calling functions in the inferior. */
rs6000_find_toc_address_hook = find_toc_address;
- /* Initialize hook in rs6000-tdep.c to set the current architecture
- when starting a child process. */
- rs6000_set_host_arch_hook = set_host_arch;
-
deprecated_add_core_fns (&rs6000_core_fns);
}