Commit Graph

50 Commits

Author SHA1 Message Date
Mark Kettenis
ce556f8539 * i386-linux-nat.c (ORIG_EAX): Define to -1 if not already
defined.
(regmap): Extend to cover all registers.
(PT_READ_U, PT_WRITE_U, PTRACE_XFER_TYPE,
OLD_CANNOT_FETCH_REGISTERS, OLD_CANNOT_STORE_REGISTERS): Remove
definitions.
(fetch_register, sore_register): Simplify.
(old_fetch_inferior_registers, old_store_inferior_registers):
Remove functions.
(cannot_fetch_register, cannot_store_register): Change
implementation to use regmap array to decide which registers
cannot be fetched/stored.  This removes $orig_eax from the
registers that cannot be fetched/stored.
(fetch_inferior_registers): Call fetch_register directly instead
of calling old_fetch_inferior_registers.
(store_inferior_registers): Call store_register directly instead
of calling old_store_inferior_registers.
(i386_linux_dr_get): Replace PT_READ_U with PTRACE_PEEKUSER.
(i386_linux_dr_set): Replace PT_WRITE_U with PTRACE_POKEUSER.
* config/i386/nm-linux.h (U_REGS_OFFSET): Remove definition.
2002-11-09 21:31:12 +00:00
Mark Kettenis
7010ca0ad6 * i386-linux-nat.c (dummy_sse_values): Only try to fill in the SSE
registers if the target really has them.


* defs.h: Move inclusion of "ansidecl.h" before "gdb_locale.h".
Fix some whitespace problems.
2002-09-01 22:05:42 +00:00
Tom Tromey
309367d4cc * Makefile.in (osabi.o, i387-tdep.o, i386-linux-nat.o, lin-lwp.o,
ax-gdb.o, signals.o, jv-valprint.o, c-valprint.o, cp-abi.o):
	Update dependencies.
	* i387-tdep.c: Include gdb_string.h.
	* osabi.c: Likewise.
	* i386-linux-nat.c: Likewise.
	* lin-lwp.c: Likewise.
	* ax-gdb.c: Likewise.
	* signals/signals.c: Likewise.
	* jv-valprint.c: Likewise.
	* p-lang.c: Likewise.
	* c-valprint.c: Likewise.
	* cp-abi.c: Likewise.
2002-08-27 22:37:14 +00:00
Mark Kettenis
98df638700 * i386-linux-nat.c (OLD_CANNOT_FETCH_REGISTER,
OLD_CANNOT_STORE_REGISTER, supply_gregset, fill_gregset): Replace
usage of NUM_GREGS with I386_NUM_GREGS.
2002-06-15 16:43:54 +00:00
Mark Kettenis
099a94140a * i386-linux-nat.c (fill_gregset): Remove redundant parentheses. 2002-06-15 14:03:10 +00:00
Andrew Cagney
5179e78f8b * Makefile.in (i386_linux_tdep_h): Define.
(i386_tdep_h, i387_tdep_h): Define.
(i386-linux-nat.o): Add $(i386_linux_tdep_h),
$(i386_tdep_h) and $(i387_tdep_h).
* i386-linux-nat.c: Include "i386-linux-tdep.h".
2002-06-14 22:30:41 +00:00
Mark Kettenis
82ea117a29 * i386-linux-nat.c (suppy_gregset): Don't supply
I386_LINUX_ORIG_EAX_REGNUM if there isn't room for it in GDB's
register cache.
(fill_gregset): Don't fetch it under the same circumstances.
2002-06-09 16:06:48 +00:00
Jason Thorpe
e750d25e90 * Makefile.in (ALLDEPFILES): Remove i387-nat.c.
(i387-nat.o): Delete dependency list.
(go32-nat.o): Change i387-nat.h to i387-tdep.h.
(x86-64-linux-nat.o): Likewise.
* i387-nat.c: Delete file, moving contents to...
* i387-tdep.c: ...here.
* i387-nat.h: Rename...
* i387-tdep.h: ...to this.
* go32-nat.c: Include i387-tdep.h instead of i387-nat.h.
* i386-linux-nat.c: Likewise.
* i386bsd-nat.c: Likewise.
* i386gnu-nat.c: Likewise.
* i386nbsd-nat.c: Likewise.
* i386v4-nat.c: Likewise.
* x86-64-linux-nat.c: Likewise.
* config/i386/fbsd.mh (NATDEPFILES): Remove i387-nat.o.
* config/i386/go32.mh (NATDEPFILES): Likewise.
* config/i386/i386gnu.mh (NATDEPFILES): Likewise.
* config/i386/i386sol2.mh (NATDEPFILES): Likewise.
* config/i386/i386v42mp.mh (NATDEPFILES): Likewise.
* config/i386/linux.mh (NATDEPFILES): Likewise.
* config/i386/nbsd.mh (NATDEPFILES): Likewise.
* config/i386/nbsdelf.mh (NATDEPFILES): Likewise.
* config/i386/obsd.mh (NATDEPFILES): Likewise.
* config/i386/x86-64linux.mh (NATDEPFILES): Likewise.
2002-05-11 17:22:27 +00:00
Andrew Cagney
a4b6fc86fa s/Linux/.../
Fix PR gdb/378.
2002-02-24 22:14:33 +00:00
Michael Snyder
975aec09bd 2002-01-09 Michael Snyder <msnyder@redhat.com>
* i386-linux-nat.c (fill_fpxregset): Make global.
	(store_fpxregset): Ditto.
2002-01-09 22:32:16 +00:00
Michael Snyder
c38333241f 2001-12-27 Michael Snyder <msnyder@redhat.com>
* i386-linux-nat.c: Include i386-tdep.h.
2001-12-27 19:52:31 +00:00
Kevin Buettner
76fb44f49a * i386-linux-nat.c (fill_gregset): Fix botched regcache_collect()
conversion for I386_LINUX_ORIG_EAX_REGNUM.
2001-11-18 21:38:59 +00:00
Kevin Buettner
8a40674599 * i386-linux-nat.c (fill_gregset): Use regcache_collect() instead
of accessing registers[] directly.
2001-11-18 01:19:47 +00:00
Kevin Buettner
7dd945fa27 * i386-linux-nat.c (fill_gregset): Don't invoke read_register_gen()
when fetching ORIG_EAX.
2001-11-17 23:53:16 +00:00
Mark Kettenis
3fb1c83804 * i386-linux-nat.c (GETREGS_SUPPLIES, supply_gregset,
fill_gregset): Add support for "orig_eax" register.
2001-11-04 14:30:42 +00:00
Kevin Buettner
ca6724c16a Redefine ptid_t to be a struct rather than an int. 2001-05-15 00:03:38 +00:00
Kevin Buettner
39f770628a Phase 1 of the ptid_t changes. 2001-05-04 04:15:33 +00:00
Mark Kettenis
7bf0983e94 * i386-linux-nat.c (i386_linux_dr_get): Change type of return
value to `unsigned long'.  Change type of `value' to `unsigned
long'.
(i386_linux_dr_set): Change type of second argument to `unsigned
long'.
(i386_linux_dr_set_control): Change type of first argument to
`unsigned long'.
(i386_linux_dr_get_status): Change type of return value to
unsigned long.
* config/i386/nm-linux.h (i386_linux_dr_set_control,
i386_linux_dr_get_status): Adjust prototypes accordingly.
2001-04-01 10:48:48 +00:00
Mark Kettenis
b9511b9a9a * i386-linux-nat.c (i386_linux_dr_get): Return 0 if ptrace call
fails instead of calling perror_with_name.  This should fix
debugging remote i386 targets with a native Linux/x86 GDB.  Add
FIXME for this hack.
2001-03-28 08:35:14 +00:00
Mark Kettenis
84346e11ea Make Linux use the new unified support for hardware breakpoints
and watchpoints on x86 targets.
* i386-linux-nat.c: Doc fixes.  Include "gdb_assert.h".
[HAVE_SYS_DEBUGREG_H]: Include <sys/debugreg.h>.
(DR_FIRSTADDR, DR_LASTADDR, DR_STATUS, DR_CONTROL): Define to
appropriate value if not already defined.
(register_u_addr): New function.
(kernel_u_size): New function.
(i386_linux_dr_get, i386_linux_dr_set): New functions.
(i386_linux_dr_set_control, i386_linux_dr_set_addr,
i386_linux_reset_addr, i386_linux_dr_get_status): New functions.
* config/i386/nm-linux.h: Don't include "nm-i386v.h".
(I386_USE_GENERIC_WATCHPOINTS): Define and include "nm-i386.h".
(TARGET_HAS_HARDWARE_WATCHPOINTS,
TARGET_CAN_USE_HARDWARE_WATCHPOINTS, HAVE_CONTINUABLE_WATCHPOINT,
STOPPED_BY_WATCHPOINT, target_insert_watchpoint,
target_remove_watchpoint): Remove macros.
(i386_stopped_by_watchpoint, i386_insert_watchpoint,
i386_remove_watchpoint): Remove prototypes.
(register_u_addr): New prototype.
(REGISTER_U_ADDR): Define in terms of register_u_addr.
(i386_linux_dr_set_control, i386_linux_dr_set_addr,
i386_linux_reset_addr, i386_linux_dr_get_status): New prototypes.
(I386_DR_LOW_SET_CONTROL, I386_DR_LOW_SET_ADDR,
I386_DR_LOW_RESET_ADDR, I386_DR_LOW_GET_STATUS): New macros.
* config/i386/linux.mh (NATDEPFILES): Replace i386v-nat.o with
i386-nat.o.
2001-03-21 21:22:49 +00:00
Andrew Cagney
a728f04251 Eliminate ARCH_NUM_REGS. 2001-03-13 23:31:14 +00:00
Andrew Cagney
4e052eda91 Create new file regcache.h. Update all uses. 2001-03-01 01:39:22 +00:00
Andrew Cagney
8e65ff28b0 Add __FILE__ and __LINE__ parameter to internal_error() /
internal_verror().
2001-02-08 06:03:54 +00:00
J.T. Conklin
ad2a4d0953 * alphabsd-nat.c, i386-linux-nat.c, i386bsd-nat.c: Fix typo in comment. 2001-01-03 21:12:18 +00:00
Mark Kettenis
2866d30574 * i386-linux-nat.c (store_fpxregs): Add code to detect support for
the PTRACE_GETFPXREGS request, and return zero if it's not.
2000-12-21 20:18:45 +00:00
Peter Schauer
d5d653533c * i386-linux-nat.c (OLD_CANNOT_FETCH_REGISTER,
OLD_CANNOT_FETCH_REGISTER):  New definitions for accessible registers
	when accessing the registers via the U area.
	(fetch_register, store_register):  Use them.
	(cannot_fetch_register, cannot_store_register):  New functions,
	all registers should be accessible if we have GETREGS support.
	* config/i386/nm-linux.h:  Use cannot_fetch/store_register for
	CANNOT_FETCH/STORE_REGISTER definitions.
2000-09-22 17:45:47 +00:00
Michael Snyder
bafda96e6e 2000-08-29 Michael Snyder <msnyder@cleaver.cygnus.com>
* i386-linux-nat.c (i386_linux_skip_solib_resolver,
        skip_hurd_resolver, find_minsym_and_objfile): Move these
        solib functions into i386-linux-tdep.c for cross debugging.
        * i386-linux-tdep.c: Receive the above functions.
2000-08-29 23:31:10 +00:00
Mark Kettenis
756ed20662 * i386-linux-nat.c (fetch_inferior_registers): Move call to
dummy_sse_values ...
(supply_fpregset): ... here.
2000-08-28 21:54:37 +00:00
Mark Kettenis
f0373401b5 * i386-linux-nat.c [! HAVE_PTRACE_GETFPXREGS] (fetch_fpxregs,
store_fpxregs): Return 0.
2000-08-11 19:45:21 +00:00
Mark Kettenis
6ce2ac0be0 Adapt support for SSE registers in Linux/x86 for Linux 2.4.
* i386-linux-nat.c: Various doc fixes.  Include "i387-nat.h".
(GETFPXREGS_SUPPLIES): Renamed from GETXFPREGS_SUPPLIES.
(have_ptrace_getfpxregs): Renamed from have_ptrace_getxfpregs.
(convert_to_gregset): Removed.  Moved logic to ...
(fill_gregset): ... here.  Simplified function.
(fetch_regs): Use perror_with_name for error reporting.
(store_regs): Add `regno' parameter.  Use perror_with_name for
error reporting.  Call fill_gregset instead of convert_to_gregset.
(FPREG_ADDR): Remove.
(supply_fpregset): Implement by calling i387_supply_fsave.
(convert_to_fpregset): Remove.
(fill_fpregset): Implement by calling i387_fill_fsave.
(fetch_fpregs): Use perror_with_name fro error reporting.
(store_fpregs) Add `regno' parameter.  Use perror_with_name fro
error reporting.  Call fill_fpregset instead of
convert_to_fpregset.
(supply_xfpregset, convert_to_xfpregset): Removed.
(supply_fpxregset, fill_fpxregset): New functions.
(fetch_fpxregs): Renamed from fetch_xfpregs.  Use perror_with_name
for error reporting.  Call supply_fpxregset instead of
supply_xfpregset.
(store_xfpregs): Removed.
(store_fpxregs): New function.
(fetch_inferior_registers): Adjust for xfp -> fpx change.  Tweak
message in call to internal_error.
(store_inferior_registers): Adjust for xfp ->fpx change.  Pass
REGNO to store_regs, store_fpregs and store_fpxregs.
(fetch_core_registers): Adjust for xfp -> fpx change.
* acconfig.h (HAVE_PTRACE_GETFPXREGS): Renamed from
HAVE_PTRACE_GETXFPREGS.
* config.in: Regenerated.
* configure.in: Replace check for PTRACE_GETXFPREGS with check for
PTRACE_GETFPXREGS.  Remove comment about Cygnus SSE extensions.
* configure: Regenerated.
* config/i386/linux.mh (NATDEPFILES): Add i387-nat.o.
* config/i386/tm-linux.h: Base definition of HAVE_SSE_REGS on
HAVE_PTRACE_GETFPXREGS instead of HAVE_PTRACE_GETXFPREGS.
2000-08-10 17:04:33 +00:00
Kevin Buettner
fba45db2fa Protoization. 2000-07-30 01:48:28 +00:00
Michael Snyder
c60c0f5f88 2000-05-26 Michael Snyder <msnyder@seadog.cygnus.com>
* gregset.h: New file.  Typedefs for gdb_gregset_t and
        gdb_fpregset_t, prototypes for supply_gregset and friends.
        * procfs.c: Include gregset.h.  Delete local prototypes for
        supply_gregset etc., and local typedef gdb_gregset_t etc.
        * sol-thread.c: Include gregset.h, delete local prototypes,
        add appropriate casts to gdb_gregset_t.
        * uw-thread.c, lin-thread.c, core-sol2.c, core-regset.c,
        sparc-tdep.c, ptx4-nat.c, ppc-linux-nat.c, mipsv4-nat.c,
        m88k-nat.c, m68klinux-nat.c, m68k-tdep.c, irix5-nat.c,
        irix4-nat.c, ia64-linux-nat.c, i386v4-nat.c, cxux-nat.c,
        arm-linux-nat.c, alpha-nat.c: Include gregset.h.
        * config/nm-linux.h: Define GDB_GREGSET_T, GDB_FPREGET_T.
        * config/sparc/tm-sun4sol2.h: Ditto.
2000-05-26 23:22:41 +00:00
Mark Kettenis
318b21ef35 * i386-linux-nat.c: Define PT_READ_U and PT_WRITE_U if they're not
already defined.
2000-05-04 19:25:57 +00:00
Mark Kettenis
a6abb2c0e9 2000-04-30 Mark Kettenis <kettenis@gnu.org>
Fix single-stepping out of signal trampolines.
	* config/i386/nm-linux.h (CHILD_RESUME): Define.
	* i386-linux-nat.c (child_resume): New function.
2000-04-30 09:34:13 +00:00
Mark Kettenis
ed40e7aff9 2000-04-02 Mark Kettenis <kettenis@gnu.org>
* i386-linux-nat.c: Add copyright notice.
2000-04-02 20:16:28 +00:00
Jim Blandy
e7ee86a99a * i386-linux-nat.c: No need to #include "frame.h" any more.
(LINUX_SIGTRAMP_INSN0, LINUX_SIGTRAMP_OFFSET0,
LINUX_SIGTRAMP_INSN1, LINUX_SIGTRAMP_OFFSET1,
LINUX_SIGTRAMP_INSN2, LINUX_SIGTRAMP_OFFSET2, linux_sigtramp_code,
LINUX_SIGTRAMP_LEN, i386_linux_sigtramp_start,
LINUX_RT_SIGTRAMP_INSN0, LINUX_RT_SIGTRAMP_OFFSET0,
LINUX_RT_SIGTRAMP_INSN1, LINUX_RT_SIGTRAMP_OFFSET1,
linux_rt_sigtramp_code, LINUX_RT_SIGTRAMP_LEN,
i386_linux_rt_sigtramp_start, i386_linux_in_sigtramp,
i386_linux_sigcontext_addr, LINUX_SIGCONTEXT_PC_OFFSET,
i386_linux_sigtramp_saved_pc, LINUX_SIGCONTEXT_SP_OFFSET,
i386_linux_sigtramp_saved_sp):	Deleted.  Folks rightly pointed
out that these are target-dependent, and useful in non-native
configurations.  Moved to...
* i386-linux-tdep.c: ... Here, a new file.
* Makefile.in (ALLDEPFILES): Add i386-linux-tdep.c.
(i386-linux-tdep.o): New rule.
(i386-linux-nat.o): We no longer depend on frame.h.
* config/i386/linux.mt (TDEPFILES): Add i386-linux-tdep.o.
2000-03-20 20:38:29 +00:00
Jim Blandy
17f9defb0b * i386-linux-nat.c (i386_linux_saved_pc_after_call): Lost in the
merge; reinstated.
2000-03-16 23:53:35 +00:00
Jim Blandy
97780f5f6a Doc fix. 2000-03-16 22:51:49 +00:00
Jim Blandy
11708b95a3 * i386-tdep.c (LINUX_SIGTRAMP_INSN0, LINUX_SIGTRAMP_OFFSET0,
LINUX_SIGTRAMP_INSN1, LINUX_SIGTRAMP_OFFSET1,
LINUX_SIGTRAMP_INSN2, LINUX_SIGTRAMP_OFFSET2, linux_sigtramp_code,
LINUX_SIGTRAMP_LEN, i386_linux_sigtramp_start,
LINUX_RT_SIGTRAMP_INSN0, LINUX_RT_SIGTRAMP_OFFSET0,
LINUX_RT_SIGTRAMP_INSN1, LINUX_RT_SIGTRAMP_OFFSET1,
linux_rt_sigtramp_code, LINUX_RT_SIGTRAMP_LEN,
i386_linux_rt_sigtramp_start, i386_linux_in_sigtramp,
i386_linux_sigcontext_addr, LINUX_SIGCONTEXT_PC_OFFSET,
i386_linux_sigtramp_saved_pc, LINUX_SIGCONTEXT_SP_OFFSET,
i386_linux_sigtramp_saved_sp): Deleted.  These all implement
Linux-specific signal trampoline detection, and should be moved to...
* i386-linux-nat.c: ... here.
* config/i386/tm-linux.h (I386_LINUX_SIGTRAMP): No need to define
this any more, since we're not enabling OS-specific code in a
OS-independent file.
2000-03-16 22:46:30 +00:00
Mark Kettenis
b948cda90b 2000-03-06 Mark Kettenis <kettenis@gnu.org>
* i386-linux-nat.c (supply_fpregset): Mask off the reserved bits
	in *FPREGSETP.
	(convert_to_fpregset): Don't touch the reserved bits in *FPREGSETP.
2000-03-06 16:08:12 +00:00
Mark Kettenis
f60300e72c 2000-03-05 Mark Kettenis <kettenis@gnu.org>
Allow GDB to run on Linux 2.0 again.
	* config.in: Add HAVE_PTRACE_GETREGS.
	* configure.in: Check if <sys/ptrace.h> defines PTRACE_GETREGS.
	* configure: Regenerated.
	* config/i386/nm-linux.h (CANNOT_FETCH_REGISTER,
	CANNOT_STORE_REGISTER): New defines.
	* i386-linux-nat.c (have_ptrace_getregs): New variable.
	(PTRACE_XFER_TYPE, CANNOT_FETCH_REGISTER, fetch_register,
	old_fetch_inferior_registers, CANNOT_STORE_REGISTER,
	store_register, old_store_inferior_registers): Copied over from
	`inptrace.c' as a temporary measure.
	(fetch_regs, store_regs, fetch_fpregs, store_fpregs):
	Conditionalize on HAVE_PTRACE_GETREGS.  Define stubs if
	HAVE_PTRACE_GETREGS isn't defined.
	(fetch_regs): Reset `have_ptrace_getregs' if ptrace call fails
	with EIO.
	(fetch_inferior_registers, store_inferior_registers): Fall back on
	the method use in `infptrace.c' (by calling
	old_fetch_inferior_registers and old_store_inferior_registers) if
	`have_ptrace_getregs' isn't set.
2000-03-05 22:57:06 +00:00
Mark Kettenis
04cd15b61d 2000-01-29 Mark Kettenis <kettenis@gnu.org>
* i386-linux-nat.c: Use elf_gregset_t and elf_fpregset_t instead
	of gregset_t and fpregset_t.  Those are the only names that are
	guaranteed to specify the right types for all supported Linux
	systems out there.
	Various doc fixes and gratitious local variable renames, all in an
	attempt to stress similarities between the code and unify the
	terminology used.  Use ISO-C all over.
	(regmap): Remove trailing comma.
	(FPREG_ADDR): Renamed from FPREGSET_T_FPREG_ADDR.
	(convert_to_gregset): Make static.  Remove GDB_REGS argument.  It
	is unnecessary and wasn't used anyway.  All callers changed.
	(convert_to_fpregset, convert_to_xfpregset): Likewise.
	(fetch_regs, store_regs): Remove unused variable `regno'.
	(fill_fpregs): If REGNO is not -1, only update the specified
	register.
	(fetch_core_registers): Renamed from
	i386_linux_fetch_core_registers.  There is no need for a unique
	name since the function is static anyway.
	(linux_elf_core_fns): Renamed from i386_linux_nat_core_functions
	since it is more descriptive.
2000-03-05 16:39:11 +00:00
Jason Molenda
c5394b80ae import gdb-2000-01-17 snapshot 2000-01-18 00:55:13 +00:00
Jason Molenda
ed9a39ebf9 import gdb-1999-12-21 snapshot 1999-12-22 21:45:38 +00:00
Jason Molenda
de57eccd12 import gdb-1999-12-07 snapshot 1999-12-08 02:51:13 +00:00
Jason Molenda
c2d11a7da0 import gdb-1999-12-06 snapshot 1999-12-07 03:56:43 +00:00
Jason Molenda
11cf874164 import gdb-1999-11-08 snapshot 1999-11-09 01:23:30 +00:00
Jason Molenda
5c44784c11 import gdb-1999-11-01 snapshot 1999-11-02 04:44:47 +00:00
Jason Molenda
917317f4c6 import gdb-1999-10-18 snapshot 1999-10-19 02:47:02 +00:00
Stan Shebs
d4f3574e77 import gdb-1999-09-08 snapshot 1999-09-09 00:02:17 +00:00