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.
This commit is contained in:
parent
72f6eb52ad
commit
b7da9e9f5f
5 changed files with 13 additions and 37 deletions
|
@ -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>
|
2010-04-26 Jan Kratochvil <jan.kratochvil@redhat.com>
|
||||||
|
|
||||||
* cp-namespace.c (cp_lookup_symbol_in_namespace): Fix alloca size.
|
* cp-namespace.c (cp_lookup_symbol_in_namespace): Fix alloca size.
|
||||||
|
|
|
@ -19,14 +19,4 @@
|
||||||
|
|
||||||
#ifdef NEW_PROC_API /* Solaris 6 and above can do HW watchpoints */
|
#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 */
|
#endif /* NEW_PROC_API */
|
||||||
|
|
|
@ -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>
|
2010-04-24 Pedro Alves <pedro@codesourcery.com>
|
||||||
|
|
||||||
* gdb.texinfo (Commands to specify files): Describe what how GDB
|
* gdb.texinfo (Commands to specify files): Describe what how GDB
|
||||||
|
|
|
@ -781,11 +781,6 @@ inferior after a watchpoint has been hit. This is usually set
|
||||||
when watchpoints trigger at the instruction following an interesting
|
when watchpoints trigger at the instruction following an interesting
|
||||||
read or write.
|
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
|
@findex STOPPED_BY_WATCHPOINT
|
||||||
@item STOPPED_BY_WATCHPOINT (@var{wait_status})
|
@item STOPPED_BY_WATCHPOINT (@var{wait_status})
|
||||||
Return non-zero if stopped by a watchpoint. @var{wait_status} is of
|
Return non-zero if stopped by a watchpoint. @var{wait_status} is of
|
||||||
|
|
22
gdb/infrun.c
22
gdb/infrun.c
|
@ -179,16 +179,6 @@ show_debug_infrun (struct ui_file *file, int from_tty,
|
||||||
#endif
|
#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. */
|
/* Tables of how to react to signals; the user sets them. */
|
||||||
|
|
||||||
static unsigned char *signal_stop;
|
static unsigned char *signal_stop;
|
||||||
|
@ -1484,18 +1474,6 @@ resume (int step, enum target_signal sig)
|
||||||
"trap_expected=%d\n",
|
"trap_expected=%d\n",
|
||||||
step, sig, tp->trap_expected);
|
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
|
/* Normally, by the time we reach `resume', the breakpoints are either
|
||||||
removed or inserted, as appropriate. The exception is if we're sitting
|
removed or inserted, as appropriate. The exception is if we're sitting
|
||||||
at a permanent breakpoint; we need to step over it, but permanent
|
at a permanent breakpoint; we need to step over it, but permanent
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue