From 14164c30b6b5ae623fd1cd75384179d9fef368d6 Mon Sep 17 00:00:00 2001 From: Peter Schauer Date: Thu, 13 Apr 2000 18:11:41 +0000 Subject: * config/i386/nm-i386sol2.h (CANNOT_STEP_HW_WATCHPOINTS): Define. * config/i386/tm-i386sol2.h (HAVE_I387_REGS): Define. * i386v4-nat.c (supply_fpregset, fill_fpregset): Add code to handle floating point registers if NUM_FREGS is not zero. --- gdb/config/i386/nm-i386sol2.h | 10 ++++++++++ gdb/config/i386/tm-i386sol2.h | 1 + 2 files changed, 11 insertions(+) (limited to 'gdb/config') diff --git a/gdb/config/i386/nm-i386sol2.h b/gdb/config/i386/nm-i386sol2.h index 2c4b4d4..8f29711 100644 --- a/gdb/config/i386/nm-i386sol2.h +++ b/gdb/config/i386/nm-i386sol2.h @@ -34,6 +34,16 @@ It will *NOT* be necessary for GDB to step over the watchpoint. */ #define HAVE_CONTINUABLE_WATCHPOINT +/* Solaris x86 2.6 and 2.7 targets have a kernel bug when stepping + over an instruction that causes a page fault without triggering + a hardware watchpoint. The kernel properly notices that it shouldn't + stop, because the hardware watchpoint is not triggered, but it forgets + the step request and continues the program normally. + Work around the problem by removing hardware watchpoints if a step is + requested, GDB will check for a hardware watchpoint trigger after the + step anyway. */ +#define CANNOT_STEP_HW_WATCHPOINTS + extern int procfs_stopped_by_watchpoint PARAMS ((int)); #define STOPPED_BY_WATCHPOINT(W) \ procfs_stopped_by_watchpoint(inferior_pid) diff --git a/gdb/config/i386/tm-i386sol2.h b/gdb/config/i386/tm-i386sol2.h index da231eb..a15d812 100644 --- a/gdb/config/i386/tm-i386sol2.h +++ b/gdb/config/i386/tm-i386sol2.h @@ -21,6 +21,7 @@ #ifndef TM_I386SOL2_H #define TM_I386SOL2_H 1 +#define HAVE_I387_REGS #include "i386/tm-i386v4.h" /* Signal handler frames under Solaris 2 are recognized by a return address -- cgit v1.1