aboutsummaryrefslogtreecommitdiff
path: root/gdb/i386-linux-nat.c
AgeCommit message (Collapse)AuthorFilesLines
2002-11-09* i386-linux-nat.c (ORIG_EAX): Define to -1 if not alreadyMark Kettenis1-137/+61
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-09-01* i386-linux-nat.c (dummy_sse_values): Only try to fill in the SSEMark Kettenis1-2/+4
registers if the target really has them. * defs.h: Move inclusion of "ansidecl.h" before "gdb_locale.h". Fix some whitespace problems.
2002-08-27 * Makefile.in (osabi.o, i387-tdep.o, i386-linux-nat.o, lin-lwp.o,Tom Tromey1-0/+1
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-06-15* i386-linux-nat.c (OLD_CANNOT_FETCH_REGISTER,Mark Kettenis1-4/+4
OLD_CANNOT_STORE_REGISTER, supply_gregset, fill_gregset): Replace usage of NUM_GREGS with I386_NUM_GREGS.
2002-06-15* i386-linux-nat.c (fill_gregset): Remove redundant parentheses.Mark Kettenis1-1/+1
2002-06-14* Makefile.in (i386_linux_tdep_h): Define.Andrew Cagney1-0/+3
(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-09* i386-linux-nat.c (suppy_gregset): Don't supplyMark Kettenis1-2/+4
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-05-11* Makefile.in (ALLDEPFILES): Remove i387-nat.c.Jason Thorpe1-1/+1
(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-02-24s/Linux/.../Andrew Cagney1-11/+13
Fix PR gdb/378.
2002-01-092002-01-09 Michael Snyder <msnyder@redhat.com>Michael Snyder1-3/+3
* i386-linux-nat.c (fill_fpxregset): Make global. (store_fpxregset): Ditto.
2001-12-272001-12-27 Michael Snyder <msnyder@redhat.com>Michael Snyder1-0/+3
* i386-linux-nat.c: Include i386-tdep.h.
2001-11-18 * i386-linux-nat.c (fill_gregset): Fix botched regcache_collect()Kevin Buettner1-1/+1
conversion for I386_LINUX_ORIG_EAX_REGNUM.
2001-11-18 * i386-linux-nat.c (fill_gregset): Use regcache_collect() insteadKevin Buettner1-3/+2
of accessing registers[] directly.
2001-11-17 * i386-linux-nat.c (fill_gregset): Don't invoke read_register_gen()Kevin Buettner1-1/+2
when fetching ORIG_EAX.
2001-11-04* i386-linux-nat.c (GETREGS_SUPPLIES, supply_gregset,Mark Kettenis1-1/+6
fill_gregset): Add support for "orig_eax" register.
2001-05-15Redefine ptid_t to be a struct rather than an int.Kevin Buettner1-11/+0
2001-05-04Phase 1 of the ptid_t changes.Kevin Buettner1-16/+19
2001-04-01* i386-linux-nat.c (i386_linux_dr_get): Change type of returnMark Kettenis1-6/+6
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-03-28* i386-linux-nat.c (i386_linux_dr_get): Return 0 if ptrace callMark Kettenis1-0/+9
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-21Make Linux use the new unified support for hardware breakpointsMark Kettenis1-0/+107
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-13Eliminate ARCH_NUM_REGS.Andrew Cagney1-2/+2
2001-03-01Create new file regcache.h. Update all uses.Andrew Cagney1-0/+1
2001-02-08Add __FILE__ and __LINE__ parameter to internal_error() /Andrew Cagney1-3/+5
internal_verror().
2001-01-03* alphabsd-nat.c, i386-linux-nat.c, i386bsd-nat.c: Fix typo in comment.J.T. Conklin1-1/+1
2000-12-21* i386-linux-nat.c (store_fpxregs): Add code to detect support forMark Kettenis1-1/+9
the PTRACE_GETFPXREGS request, and return zero if it's not.
2000-09-22 * i386-linux-nat.c (OLD_CANNOT_FETCH_REGISTER,Peter Schauer1-8/+24
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-08-292000-08-29 Michael Snyder <msnyder@cleaver.cygnus.com>Michael Snyder1-97/+0
* 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-28* i386-linux-nat.c (fetch_inferior_registers): Move call toMark Kettenis1-1/+4
dummy_sse_values ... (supply_fpregset): ... here.
2000-08-11* i386-linux-nat.c [! HAVE_PTRACE_GETFPXREGS] (fetch_fpxregs,Mark Kettenis1-2/+2
store_fpxregs): Return 0.
2000-08-10Adapt support for SSE registers in Linux/x86 for Linux 2.4.Mark Kettenis1-352/+103
* 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-07-30Protoization.Kevin Buettner1-9/+5
2000-05-262000-05-26 Michael Snyder <msnyder@seadog.cygnus.com>Michael Snyder1-0/+3
* 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-04* i386-linux-nat.c: Define PT_READ_U and PT_WRITE_U if they're notMark Kettenis1-0/+7
already defined.
2000-04-302000-04-30 Mark Kettenis <kettenis@gnu.org>Mark Kettenis1-0/+85
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-022000-04-02 Mark Kettenis <kettenis@gnu.org>Mark Kettenis1-0/+1
* i386-linux-nat.c: Add copyright notice.
2000-03-20* i386-linux-nat.c: No need to #include "frame.h" any more.Jim Blandy1-258/+0
(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-16* i386-linux-nat.c (i386_linux_saved_pc_after_call): Lost in theJim Blandy1-0/+11
merge; reinstated.
2000-03-16Doc fix.Jim Blandy1-0/+2
2000-03-16* i386-tdep.c (LINUX_SIGTRAMP_INSN0, LINUX_SIGTRAMP_OFFSET0,Jim Blandy1-0/+246
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-062000-03-06 Mark Kettenis <kettenis@gnu.org>Mark Kettenis1-17/+31
* 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-052000-03-05 Mark Kettenis <kettenis@gnu.org>Mark Kettenis1-0/+210
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-052000-01-29 Mark Kettenis <kettenis@gnu.org>Mark Kettenis1-193/+207
* 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-01-18import gdb-2000-01-17 snapshotJason Molenda1-1/+1
1999-12-22import gdb-1999-12-21 snapshotJason Molenda1-30/+55
1999-12-08import gdb-1999-12-07 snapshotJason Molenda1-0/+95
1999-12-07import gdb-1999-12-06 snapshotJason Molenda1-1/+8
1999-11-09import gdb-1999-11-08 snapshotJason Molenda1-0/+7
1999-11-02import gdb-1999-11-01 snapshotJason Molenda1-36/+316
1999-10-19import gdb-1999-10-18 snapshotJason Molenda1-131/+160
1999-09-09import gdb-1999-09-08 snapshotStan Shebs1-0/+379