2007-09-16 Daniel Jacobowitz <dan@codesourcery.com>
authorDaniel Jacobowitz <drow@false.org>
Mon, 1 Oct 2007 00:17:58 +0000 (00:17 +0000)
committerDaniel Jacobowitz <drow@false.org>
Mon, 1 Oct 2007 00:17:58 +0000 (00:17 +0000)
commitd983da9c3dfa91e6840fee2a7479d98ee4759f13
tree9a1c14b44f1a2de2d2c087b00d987deb2fe8274d
parentd830e0e0c9d4b1827385c473cb545e07a72c9b81
2007-09-16  Daniel Jacobowitz  <dan@codesourcery.com>
    Jeff Johnston  <jjohnstn@redhat.com>

* breakpoint.c (watchpoints_triggered): New.
(bpstat_stop_status): Remove STOPPED_BY_WATCHPOINT argument.
Check watchpoint_triggered instead.  Combine handling for software
and hardware watchpoints.  Do not use target_stopped_data_address
here.  Always check a watchpoint if its scope breakpoint triggers.
Do not stop for thread or overlay events.  Improve check for
triggered watchpoints without a value change.
(watch_command_1): Insert the scope breakpoint first.  Link the
scope breakpoint to the watchpoint.
* breakpoint.h (enum watchpoint_triggered): New.
(struct breakpoint): Add watchpoint_triggered.
(bpstat_stop_status): Update prototype.
(watchpoints_triggered): Declare.
* infrun.c (enum infwait_status): Add infwait_step_watch_state.
(stepped_after_stopped_by_watchpoint): Delete.
(handle_inferior_event): Make stepped_after_stopped_by_watchpoint
local.  Handle infwait_step_watch_state.  Update calls to
bpstat_stop_status.  Use watchpoints_triggered to check
watchpoints.
* remote.c (stepped_after_stopped_by_watchpoint): Remove extern.
(remote_stopped_data_address): Do not check it.

* gdb.texinfo (Setting Watchpoints): Adjust warning text about
multi-threaded watchpoints.
* gdbint.texinfo (Watchpoints): Describe how watchpoints are
checked.  Describe sticky notification.  Expand description
of steppable and continuable watchpoints.
(Watchpoints and Threads): New subsection.

* gdb.threads/watchthreads.c (thread_function): Sleep between
iterations.
* gdb.threads/watchthreads.exp: Allow two watchpoints to trigger
at once for S/390.  Generate matching fails and passes.
gdb/ChangeLog
gdb/breakpoint.c
gdb/breakpoint.h
gdb/doc/ChangeLog
gdb/doc/gdb.texinfo
gdb/doc/gdbint.texinfo
gdb/infrun.c
gdb/remote.c
gdb/testsuite/ChangeLog
gdb/testsuite/gdb.threads/watchthreads.c
gdb/testsuite/gdb.threads/watchthreads.exp