This is the mail archive of the
gdb-patches@sourceware.org
mailing list for the GDB project.
Re: [PATCH 2/4] Hardware accelerated watchpoint conditions
On Wed, 2010-07-07 at 09:44 -0700, Joel Brobecker wrote:
> > > > 2010-07-06 Sergio Durigan Junior <sergiodj@linux.vnet.ibm.com>
> > > > Thiago Jung Bauermann <bauerman@br.ibm.com>
> > > >
> > > > * breakpoint.c (fetch_watchpoint_value): Rename to fetch_subexp_value
> > > > and move to eval.c. Change callers.
> > > > (insert_bp_location): Pass watchpoint condition in
> > > > target_insert_watchpoint.
> > > > (remove_breakpoint_1) Pass watchpoint condition in
> > > > target_remove_watchpoint.
> > > > (watchpoint_locations_match): Call
> > > > target_can_accel_watchpoint_condition.
> > > > * eval.c: Include wrapper.h.
> > > > (fetch_subexp_value): Moved from breakpoint.c.
> > > > * ppc-linux-nat.c (ppc_linux_region_ok_for_hw_watchpoint):
> > > > Formatting fix.
> > > > (can_use_watchpoint_cond_accel): New function.
> > > > (calculate_dvc): Likewise.
> > > > (num_memory_accesses): Likewise.
> > > > (check_condition): Likewise.
> > > > (ppc_linux_can_accel_watchpoint_condition): Likewise
> > > > (ppc_linux_insert_watchpoint): Call can_use_watchpoint_cond_accel,
> > > > check_condition and calculate_dvc.
> > > > (ppc_linux_remove_watchpoint): Likewise.
> > > > (_initialize_ppc_linux_nat): Set to_can_accel_watchpoint_condition to
> > > > ppc_linux_can_accel_watchpoint_condition
> > > > * target.c (debug_to_insert_watchpoint): Add argument for watchpoint
> > > > condition.
> > > > (debug_to_remove_watchpoint): Likewise.
> > > > (debug_to_can_accel_watchpoint_condition): New function.
> > > > (update_current_target): Set to_can_accel_watchpoint_condition.
> > > > (setup_target_debug): Set to_can_accel_watchpoint_condition.
> > > > * target.h: Add opaque declaration for struct expression.
> > > > (struct target_ops) <to_insert_watchpoint>,
> > > > <to_remove_watchpoint>: Add new arguments to pass the watchpoint
> > > > <to_can_accel_watchpoint_condition>: New member.
> > > > condition. Update all callers and implementations.
> > > > (target_can_accel_watchpoint_condition): New macro.
> > > > * value.c (free_value_chain): New function.
> > > > * value.h (fetch_subexp_value): New prototype.
> > > > (free_value_chain): Likewise.
> > >
> > > This is OK.
> >
> > Committed, thanks!
>
> I am a little nervous about including this in 7.2 given that it changes
> the interface of target_ops functions. But at the same time, it's been
> WIP for so long that I feel that everyone who contributed to getting
> this piece of code in deserves to see this code in 7.2. We can work out
> any missing API updates, if any during the branch stabilization phase.
Thanks!
The patch adds an argument to to_insert_watchpoint and
to_remove_watchpoint, and adds a new target function
(to_can_accel_watchpoint_condition) with a default implementation
(return_zero). If this patch doesn't make GDB fail to compile on a
platform (I didn't try to compile it on all platforms which it touches),
then it shouldn't have any impact.
--
[]'s
Thiago Jung Bauermann
IBM Linux Technology Center