You should know the following characteristics about watches before working
with them:
- Watches are monitored system-wide, with a maximum of 256 watches that
can be active simultaneously. This number includes watches set by the system.
Depending on overall system use, you may be limited in the number of watch
conditions you can set at a given time. If you try to set a watch condition
while the maximum number of active watches across the system is exceeded,
you will receive an error message and the watch condition is not set.
Note:
If an expression or a variable crosses a page boundary, two watches
are used internally to monitor the storage locations. Therefore, the maximum
number of expressions or variables that can be watched simultaneously on a
system-wide basis ranges from 128 to 256.
- Watch conditions can only be set when a program is stopped under debug,
and the expression or variable to be watched is in scope. If this is not the
case, an error message is issued when a watch is requested, indicating that
the corresponding call stack entry does not exist.
- Once the watch condition is set, the address of a storage location watched
does not change. Therefore, if a watch is set on a temporary location, it
could result in spurious watch-condition notifications.
An example of this
is the automatic storage of an ILE COBOL procedure, which can be re-used after
the procedure ends.
A watch condition may be registered although the
watched variable is no longer in scope. You must not assume that a variable
is in scope just because a watch condition has been reported.
- Two watch locations in the same job must not overlap in any way. Two watch
locations in different jobs must not start at the same storage address; otherwise,
overlap is allowed. If these restrictions are violated, an error message is
issued.
Note:
Changes made to a watched storage location are ignored
if they are made by a job other than the one that set the watch condition.
- After the command is successfully run, your application is stopped if
a program in your session changes the contents of the watched storage location,
and the Display Module Source display is shown.
If the program has debug
data, and a source text view is available, it will be shown. The source line
of the statement that was about to be run when the content change at the storage-location
was detected is highlighted. A message indicates which watch condition was
satisfied.
If the program cannot be debugged, the text area of the display
will be blank.
- Eligible programs are automatically added to the debug session if they
cause the watch-stop condition.
- When multiple watch conditions are hit on the same program statement,
only the first one will be reported.
- You can set watch conditions also when you are using service jobs for
debugging, that is, when you debug one job from another job.
(C) Copyright IBM Corporation 1992, 2006. All Rights Reserved.