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] |
> > 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.