[rfc, rfa/doc] Multi-threaded watchpoint improvements
Andreas Schwab
schwab@suse.de
Wed Apr 16 22:57:00 GMT 2008
Daniel Jacobowitz <drow@false.org> writes:
> 2007-09-30 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.
That completely broke watchpoints on ppc. They are no longer recognized
as such, and gdb is reporting a SIGTRAP instead.
Andreas.
--
Andreas Schwab, SuSE Labs, schwab@suse.de
SuSE Linux Products GmbH, MaxfeldstraÃe 5, 90409 Nürnberg, Germany
PGP key fingerprint = 58CA 54C7 6D53 942B 1756 01D3 44D5 214B 8276 4ED5
"And now for something completely different."
More information about the Gdb-patches
mailing list