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]

Adding watchpoint functions to target vector vs. TARGET*WATCHPOINT macros


In working on adding hardware watch register support to mips*-linux, I
have encountered a small issue.

Back in:

http://sourceware.org/ml/gdb-patches/2008-04/msg00443.html

Daniel pointed out that all the watch related functions could be added
directly to the target vector instead of writing target specific
TARGET*WATCHPOINT macros.  While this is true, there is a small drawback.

The target vector is not installed until the inferior is started, so any
watches added before this happens end up being soft-watches.

If the various TARGET*WATCHPOINT macros are defined instead, hardware
watchpoints can be added even if the inferior has not been started.
This scares me a little as it seems that they may end up triggering in
the shell that is starting the inferior.

Ideally in when the first resume() is issued to the inferior the
watchpoints would be re-evaluated to see if some (or all) of them could
be converted to hardware watchpoints.  There might have to be an
additional target hook to allow for this.

For the short term I think I will stick to adding the watch functions to
the target vector, but I am interested in feedback on the merits of
either re-evaluating the watchpoints or using the TARGET*WATCHPOINT macros

Thanks,
David Daney


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