This is the mail archive of the gdb@sourceware.org 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]

Problem with can_use_hw_breakpoint


I am trying to implement the target operation can_use_hw_breakpoint()
for an architecture with limited resources for hardware
breakpoint/watchpoint.

The call to can_use_hw_breakpoint() will identify the type of HW
breakpoint/watchpoint, a count of how many of that type are required,
and for watchpoints a flag (othertype) to indicate if HW watchpoints of
other types have been requested.

This function is called in response to watch, rwatch, awatch or hbreak
commands. My architecture can support up to 4 hardware watchpoints.
Consider the sequence

awatch a (watchpoint 1)
awatch b (watchpoint 2)
rwatch c (watchpoint 3)
rwatch d (watchpoint 4)
rwatch e

rwatch e should fail (5th request), but all I know from the call to
can_use_hw_breakpoint() is that 3 of this type are requested and that
some other type of watchpoint (but not how many) has previously been
requested.

It does not help to keep a private count of the calls, since I have no
notification of deletions, so I could not distinguish the sequence

awatch a (watchpoint 1)
awatch b (watchpoint 2)
rwatch c (watchpoint 3)
rwatch d (watchpoint 4)
delete 1
rwatch e (watchpoint 5)

which should succeed.

Ideally I would like can_use_hw_breakpoint to supply me with an array
with the counts of all types of HW breakpoint/watchpoint requested, so I
could determine the total resource currently required.

In the absence of this, can anyone suggest a reasonably simple solution.
The only approach I could think would be to place observers on the
watch, rwatch, awatch, hbreak and delete commands. This seems an
excessively heavyweight solution to impose.

Any suggestions welcome.

Thanks,


Jeremy

-- 
Tel:      +44 (1202) 416955
Cell:     +44 (7970) 676050
SkypeID: jeremybennett
Email:   jeremy.bennett@embecosm.com
Web:     www.embecosm.com



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