mirror of
https://github.com/espressif/binutils-gdb.git
synced 2025-06-26 22:07:58 +08:00
* arch-utils.c (legacy_pc_in_sigtramp): Remove.
* arch-utils.h (legacy_pc_in_sigtramp): Remove. * config/ia64/linux.mt (DEPRECATED_TM_FILE): Remove. * config/ia64/tm-linux.h: Remove file. * ia64-tdep.h (struct gdbarch_tdep): Add pc_in_sigtramp callback. * ia64-tdep.c (ia64_sigtramp_frame_sniffer): Use it instead of legacy_pc_in_sigtramp. (ia64_gdbarch_init): Initialize tdep->pc_in_sigtramp. * ia64-linux-tdep.c (ia64_linux_pc_in_sigtramp): Make static. Remove func_name argument. (ia64_linux_init_abi): Install it as tdep->pc_in_sigtramp. * infrun.c (HAVE_STEPPABLE_WATCHPOINT): Do not redefine. * target.c (update_current_target): Add to_have_steppable_watchpoint. * target.h (struct target_ops): Add to_have_steppable_watchpoint. (HAVE_STEPPABLE_WATCHPOINT): Define. * config/ia64/linux.mh (NATDEPFILES): Remove core-aout.o. * config/ia64/nm-linux.h (KERNEL_U_ADDR, U_REGS_OFFSET, CANNOT_FETCH_REGISTER, CANNOT_STORE_REGISTER, TARGET_CAN_USE_HARDWARE_WATCHPOINT, HAVE_STEPPABLE_WATCHPOINT, STOPPED_BY_WATCHPOINT, target_stopped_data_address, target_insert_watchpoint, target_remove_watchpoint): Remove. (FETCH_INFERIOR_REGISTERS): Define. * ia64-linux-nat.c (ia64_register_addr): Make static. (ia64_cannot_fetch_register, ia64_cannot_store_register): Likewise. (ia64_linux_insert_watchpoint): Make static. Remove ptid_p argument. (ia64_linux_remove_watchpoint): Likewise. Add type argument. (ia64_linux_stopped_data_address): Make static. Add target_ops. (ia64_linux_stopped_by_watchpoint): Make static. (ia64_linux_can_use_hw_breakpoint): New function. (ia64_linux_fetch_register, ia64_linux_fetch_registers): Likewise. (ia64_linux_store_register, ia64_linux_store_registers): Likewise. (_initialize_ia64_linux_nat): Install register and watchpoint ops.
This commit is contained in:
@ -2,7 +2,7 @@
|
||||
|
||||
NAT_FILE= nm-linux.h
|
||||
NATDEPFILES= inf-ptrace.o fork-child.o corelow.o gcore.o \
|
||||
core-aout.o core-regset.o ia64-linux-nat.o \
|
||||
core-regset.o ia64-linux-nat.o \
|
||||
proc-service.o linux-thread-db.o linux-nat.o linux-fork.o
|
||||
|
||||
LOADLIBES = -ldl -rdynamic
|
||||
|
@ -1,4 +1,3 @@
|
||||
# Target: Intel IA-64 running GNU/Linux
|
||||
TDEPFILES= ia64-tdep.o ia64-linux-tdep.o \
|
||||
solib.o solib-svr4.o solib-legacy.o symfile-mem.o
|
||||
DEPRECATED_TM_FILE= tm-linux.h
|
||||
|
@ -22,56 +22,8 @@
|
||||
#ifndef NM_LINUX_H
|
||||
#define NM_LINUX_H
|
||||
|
||||
struct target_ops;
|
||||
|
||||
#include "config/nm-linux.h"
|
||||
|
||||
/* This is the amount to subtract from u.u_ar0
|
||||
to get the offset in the core file of the register values. */
|
||||
#define KERNEL_U_ADDR 0x0
|
||||
|
||||
/* Note: It seems likely that we'll have to eventually define
|
||||
FETCH_INFERIOR_REGISTERS. But until that time, we'll make do
|
||||
with the following. */
|
||||
|
||||
#define CANNOT_FETCH_REGISTER(regno) ia64_cannot_fetch_register(regno)
|
||||
extern int ia64_cannot_fetch_register (int regno);
|
||||
|
||||
#define CANNOT_STORE_REGISTER(regno) ia64_cannot_store_register(regno)
|
||||
extern int ia64_cannot_store_register (int regno);
|
||||
|
||||
#define U_REGS_OFFSET 0
|
||||
|
||||
/* Hardware watchpoints */
|
||||
|
||||
#define TARGET_CAN_USE_HARDWARE_WATCHPOINT(type, cnt, ot) 1
|
||||
|
||||
/* The IA-64 architecture can step over a watch point (without triggering
|
||||
it again) if the "dd" (data debug fault disable) bit in the processor
|
||||
status word is set.
|
||||
|
||||
This PSR bit is set in ia64_linux_stopped_by_watchpoint when the
|
||||
code there has determined that a hardware watchpoint has indeed
|
||||
been hit. The CPU will then be able to execute one instruction
|
||||
without triggering a watchpoint. */
|
||||
#define HAVE_STEPPABLE_WATCHPOINT 1
|
||||
|
||||
#define STOPPED_BY_WATCHPOINT(W) \
|
||||
ia64_linux_stopped_by_watchpoint ()
|
||||
extern int ia64_linux_stopped_by_watchpoint ();
|
||||
|
||||
#define target_stopped_data_address(target, x) \
|
||||
ia64_linux_stopped_data_address(x)
|
||||
extern int ia64_linux_stopped_data_address (CORE_ADDR *addr_p);
|
||||
|
||||
#define target_insert_watchpoint(addr, len, type) \
|
||||
ia64_linux_insert_watchpoint (inferior_ptid, addr, len, type)
|
||||
extern int ia64_linux_insert_watchpoint (ptid_t ptid, CORE_ADDR addr,
|
||||
int len, int rw);
|
||||
|
||||
#define target_remove_watchpoint(addr, len, type) \
|
||||
ia64_linux_remove_watchpoint (inferior_ptid, addr, len)
|
||||
extern int ia64_linux_remove_watchpoint (ptid_t ptid, CORE_ADDR addr,
|
||||
int len);
|
||||
#define FETCH_INFERIOR_REGISTERS
|
||||
|
||||
#endif /* #ifndef NM_LINUX_H */
|
||||
|
@ -1,28 +0,0 @@
|
||||
/* Definitions to target GDB to GNU/Linux on ia64.
|
||||
|
||||
Copyright 1992, 1993, 2000, 2004, 2005, 2007 Free Software Foundation, Inc.
|
||||
|
||||
This file is part of GDB.
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
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. */
|
||||
|
||||
#ifndef TM_LINUX_H
|
||||
#define TM_LINUX_H
|
||||
|
||||
extern int ia64_linux_in_sigtramp (CORE_ADDR pc, char *func_name);
|
||||
#define DEPRECATED_IN_SIGTRAMP(pc,func_name) ia64_linux_in_sigtramp (pc, func_name)
|
||||
|
||||
#endif /* #ifndef TM_LINUX_H */
|
Reference in New Issue
Block a user