diff options
author | Pierre Muller <muller@sourceware.org> | 2010-04-26 12:01:44 +0000 |
---|---|---|
committer | Pierre Muller <muller@sourceware.org> | 2010-04-26 12:01:44 +0000 |
commit | b7da9e9f5f446695243846d70c34d9a19c9c961c (patch) | |
tree | 45223e432e8f4f3a32f7cf1cce10f6ccf548285e | |
parent | 72f6eb52adb99e35744f8b02ce57bcd5b760cfa2 (diff) | |
download | gdb-b7da9e9f5f446695243846d70c34d9a19c9c961c.zip gdb-b7da9e9f5f446695243846d70c34d9a19c9c961c.tar.gz gdb-b7da9e9f5f446695243846d70c34d9a19c9c961c.tar.bz2 |
PR breakpoints/11531.
* config/i386/nm-i386sol2.h (CANNOT_STEP_HW_WATCHPOINTS): Remove
macro definition and related comment.
* infrun.c (CANNOT_STEP_HW_WATCHPOINTS): Remove macro.
(resume): Remove code and comment related to this macro.
doc ChangeLog entry:
* gdbint.texinfo (CANNOT_STEP_HW_WATCHPOINTS): Remove explanation
of macro deleted from GDB code.
-rw-r--r-- | gdb/ChangeLog | 8 | ||||
-rw-r--r-- | gdb/config/i386/nm-i386sol2.h | 10 | ||||
-rw-r--r-- | gdb/doc/ChangeLog | 5 | ||||
-rw-r--r-- | gdb/doc/gdbint.texinfo | 5 | ||||
-rw-r--r-- | gdb/infrun.c | 22 |
5 files changed, 13 insertions, 37 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog index b3e61bc..6734f15 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,11 @@ +2010-04-26 Pierre Muller <muller@ics.u-strasbg.fr> + + PR breakpoints/11531. + * config/i386/nm-i386sol2.h (CANNOT_STEP_HW_WATCHPOINTS): Remove + macro definition and related comment. + * infrun.c (CANNOT_STEP_HW_WATCHPOINTS): Remove macro. + (resume): Remove code and comment related to this macro. + 2010-04-26 Jan Kratochvil <jan.kratochvil@redhat.com> * cp-namespace.c (cp_lookup_symbol_in_namespace): Fix alloca size. diff --git a/gdb/config/i386/nm-i386sol2.h b/gdb/config/i386/nm-i386sol2.h index 6ff0afb..8540e9e 100644 --- a/gdb/config/i386/nm-i386sol2.h +++ b/gdb/config/i386/nm-i386sol2.h @@ -19,14 +19,4 @@ #ifdef NEW_PROC_API /* Solaris 6 and above can do HW watchpoints */ -/* 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 - #endif /* NEW_PROC_API */ diff --git a/gdb/doc/ChangeLog b/gdb/doc/ChangeLog index ff59559..f4d5050 100644 --- a/gdb/doc/ChangeLog +++ b/gdb/doc/ChangeLog @@ -1,3 +1,8 @@ +2010-04-26 Pierre Muller <muller@ics.u-strasbg.fr> + + * gdbint.texinfo (CANNOT_STEP_HW_WATCHPOINTS): Remove explanation + of macro deleted from GDB code. + 2010-04-24 Pedro Alves <pedro@codesourcery.com> * gdb.texinfo (Commands to specify files): Describe what how GDB diff --git a/gdb/doc/gdbint.texinfo b/gdb/doc/gdbint.texinfo index 534eddf..d9a4a95 100644 --- a/gdb/doc/gdbint.texinfo +++ b/gdb/doc/gdbint.texinfo @@ -781,11 +781,6 @@ inferior after a watchpoint has been hit. This is usually set when watchpoints trigger at the instruction following an interesting read or write. -@findex CANNOT_STEP_HW_WATCHPOINTS -@item CANNOT_STEP_HW_WATCHPOINTS -If this is defined to a non-zero value, @value{GDBN} will remove all -watchpoints before stepping the inferior. - @findex STOPPED_BY_WATCHPOINT @item STOPPED_BY_WATCHPOINT (@var{wait_status}) Return non-zero if stopped by a watchpoint. @var{wait_status} is of diff --git a/gdb/infrun.c b/gdb/infrun.c index 5f58759..5882cb8 100644 --- a/gdb/infrun.c +++ b/gdb/infrun.c @@ -179,16 +179,6 @@ show_debug_infrun (struct ui_file *file, int from_tty, #endif -/* Convert the #defines into values. This is temporary until wfi control - flow is completely sorted out. */ - -#ifndef CANNOT_STEP_HW_WATCHPOINTS -#define CANNOT_STEP_HW_WATCHPOINTS 0 -#else -#undef CANNOT_STEP_HW_WATCHPOINTS -#define CANNOT_STEP_HW_WATCHPOINTS 1 -#endif - /* Tables of how to react to signals; the user sets them. */ static unsigned char *signal_stop; @@ -1484,18 +1474,6 @@ resume (int step, enum target_signal sig) "trap_expected=%d\n", step, sig, tp->trap_expected); - /* Some targets (e.g. Solaris x86) 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. */ - if (CANNOT_STEP_HW_WATCHPOINTS && step) - remove_hw_watchpoints (); - - /* Normally, by the time we reach `resume', the breakpoints are either removed or inserted, as appropriate. The exception is if we're sitting at a permanent breakpoint; we need to step over it, but permanent |