C and C++ SoftBench User's Guide
Using SoftBench Debugger
Setting and Using Watchpoints
Chapter 7200
For performance purposes, you should set the granularity as coarsely as
possible. For example, if you only need to know the value of the
monitored expression each time you enter a procedure, there is no sense
in monitoring it after every assembly instruction. Typically you would
locate a problem by using a granularity of "Proc Entry+Exit" to narrow
the source of the problem down to one procedure. Once the problem is
localized, use a finer granularity (such as "Statement" or "Instruction")
but limit it to the offending procedure by entering the procedure name in
the "When In" input box on the "Data Watchpoint Set/Change" dialog
box.
In many other ways, watchpoints are similar to breakpoints. In addition
to stopping the program, as a breakpointdoes,a watchpoint also displays
the new value of a changed variable. Nearly all other breakpoint
concepts apply: watchpoints can be Active or Suspended, Verbose or
Silent, and can have debugger commands associated with them. If you
want the watchpoint todisplay changed values without stopping, you can
enter the DDE command go in the "Commands" input box of the "Data
Watchpoints" dialog box. Unlike breakpoints, watchpoints have no
"Stop after Count" associated with them. See “Setting and Using
Breakpoints” on page 189 for a description of these concepts.
Creating Watchpoints
As with breakpoints, SoftBench Debugger provides multiple ways to
create watchpoints.
Using the Watch Menu
The "Watch" menu contains several entries that allow you to set a
watchpoint associated with a token entered in the "()" input box.
For example, if you want to create a watchpoint associated with the
variable counter, to be checked each time a procedure was entered, you
could enter counter in the "()" input box and choose "Watch: Set at
Entry ( )". See SoftBench Online Help for a description of these choices.
Using the "Data Watchpoint Set/Change" Dialog Box
This method is very general, and can be used to set watchpoints on any
expression or any memory location with any allowable attributes. This
method is the only way to set a watchpoint on a range of memory.
1. Choose "Watch: Set…".