This is the mail archive of the gdb-patches@sources.redhat.com mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Display of read/access watchpoints when HAVE_NONSTEPPABLE_WATCHPOINT


Hi all,

I'm working on a gdb port for a remote target that has hardware watchpoint support. I have defined HAVE_NONSTEPPABLE_WATCHPOINT, to make gdb disable the watchpoint and single-step over it when it's hit. The basic stuff works fine; the problem I have is the displaying of "Old value/New value" when a read or access watchpoint is hit. (Normal write watchpoints are displayed correctly.)

The problem seems to be that target_stopped_data_address () is called in bp_stop_status () *after* the single-step over the disabled breakpoint has been carried out, at which point the target is no longer stopped due to a hardware watchpoint (but due to the single-step). Consequently, target_stopped_data_address () returns 0, and gdb thinks that the watchpoint didn't hit. I can't see that any other targets keep the last "stopped data address" until the next hardware watchpoint is hit (which would make the address still available after the single-step).

Any suggestions as to what I might have missed, or any insight in how it's supposed to work would be appreciated.

Thanks,
Orjan

--
Orjan Friberg
Axis Communications



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