C and C++ SoftBench User's Guide
Using SoftBench Debugger
Setting and Using Watchpoints
Chapter 7 199
Setting and Using Watchpoints
Watchpoints allow you to monitor the value of an expression, or the
contents of a range of memory, while your program executes. SoftBench
Debugger checks the value (as often as specified in the watchpoint
definition), notifies you when it changes, and pauses your program.
This can be extremely useful when searching for "mystery" errors. For
example, suppose at some unknown time your program corrupts an
important area in memory. Without watchpoints, it would be very
difficult to determine exactly when the corruption occurred. Using
watchpoints, you can quickly find when the corruption happens, which
gives you a good idea of what caused it.
When you create a watchpoint, you specify the expression or address
range to monitor, and an option to specify "granularity". Granularity
specifies how often the value of interest should be monitored:
• At every procedure entry
• At every procedure exit
• At the entry and exit of every procedure
• Every statement
• Every assembly instruction
• whenever the program stops and returns control to the debugger
The Watchpoint dialog setting defaults to "Stop". This default allows you
to monitor the current values of some data items when debugging a
program.
Be certain you specify an appropriate granularity. If you want SoftBench
Debugger to watch a variable while your program runs, you should not
have the "❍ Stop" radio button active in the "Set At" area. This setting
only checks your watchpoints when your program reaches a breakpoint
or is interrupted for another reason. You should specify a procedure- or
statement-level granularity so SoftBench Debugger checks the variable
while your program runs. You can also use the "❍ Modification" radio
button to identify when an address or variable is unexpectedly being
changed. This button issues a default DDE watchpoint command on the
contents of the "()" input box. This same feature can also be accessed
from the menu under "Watch: Set at Modification".