This is the mail archive of the
mailing list for the GDB project.
Re: [rfc, rfa/doc] Multi-threaded watchpoint improvements
- From: Andreas Schwab <schwab at suse dot de>
- To: gdb-patches at sourceware dot org
- Date: Thu, 17 Apr 2008 00:40:23 +0200
- Subject: Re: [rfc, rfa/doc] Multi-threaded watchpoint improvements
- References: <20070916183949.GA23966@caradoc.them.org> <20071001002015.GA15835@caradoc.them.org>
Daniel Jacobowitz <email@example.com> writes:
> 2007-09-30 Daniel Jacobowitz <firstname.lastname@example.org>
> Jeff Johnston <email@example.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
> * 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 Schwab, SuSE Labs, firstname.lastname@example.org
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."