This is the mail archive of the gdb-testers@sourceware.cygnus.com mailing list for the GDB project. See the GDB home page for more information.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Re: 4.17.85 Feedback


>   > There are several problems. A very annoying one:
>   > 
>   > 1. Create 4 watchponts watching 4 different values.
>   > 2. Check if they are hardware and they work.
>   > 3. Delete all 4 watchponts.
>   > 4. Create another 4 watchponts watching 4 different values.
>   > 5. Check if they are hardware and they work.
> So, submit a patch for this specific problem and follow it through until the
> issue is resolved.  That way the software actually improves over time.
> 

I don't think it is possible. There are so many problems with the
hardware watchpoints on x86. I wound up almost rewriting most part
of the hardware watchpoints for x86. Only things left are the data
structures and some basic contol functions. The patch I send will
fix many problems. I am enclosing the incomplete ChangeLog entry for
my x86 hardware watchpoint changes. Feel free to contact me if you
want to go further.


-- 
H.J. Lu (hjl@gnu.org)
---
Sat Feb 13 05:42:33 1999  H.J. Lu  <hjl@gnu.org>

	* i386lnx-nat.c (i386_delete_watchpoint): Remove all hardware
	watchpoints with the matching watchpoint number.

Sun Jan 24 18:32:22 1999  H.J. Lu  <hjl@gnu.org>

	* breakpoint.c (insert_breakpoints): Also pass b->number to
	target_insert_watchpoint () if NEED_WATCHPOINT_NUMBER is
	defined.
	(remove_breakpoint): Also pass b->number to
	target_remove_watchpoint () if NEED_WATCHPOINT_NUMBER is
	defined.
	(delete_breakpoint): Call target_delete_watchpoint () for
	watchpoint if NEED_WATCHPOINT_NUMBER is defined.

	* i386lnx-nat.c (address_lookup): Add a new field for the
	watchpoint number.
	(i386_insert_aligned_watchpoint): Handle it.
	(i386_remove_watchpoint): Likewise.
	(i386_stopped_by_watchpoint): Likewise.

	* i386lnx-nat.c (i386_insert_aligned_watchpoint): Handle
	large "len".

	* i386lnx-nat.c (i386_insert_aligned_watchpoint): Add "num" to
	the argument.
	(i386_insert_nonaligned_watchpoint): Likewise.
	(i386_insert_watchpoint): Likewise.
	(i386_remove_watchpoint): Likewise.
	* config/i386/nm-linux.h (target_insert_watchpoint): Likewise.
	(target_remove_watchpoint): Likewise.
	(i386_insert_watchpoint): Likewise.
	(i386_remove_watchpoint): Likewise.

	* i386lnx-nat.c (i386_delete_watchpoint): New.

	* i386lnx-nat.c: Handle debugreg.h right.

Thu Jun 25 19:09:56 1998  H.J. Lu  <hjl@gnu.org>

	* i386lnx-nat.c (i386_insert_aligned_watchpoint): Reuse the
	old lookup address. Ignore large variable.

Mon May 25 22:18:03 1998  H.J. Lu  <hjl@gnu.org>

	* breakpoint.c (VALUE_FIT_IN_REG): New.
	(can_use_hardware_watchpoint): Use it.

	* config/i386/linux.mh (NATDEPFILES): Remove i386v-nat.o
	i386v4-nat.o and add i386lnx-nat.o.