This function is used to display and modify variables within the debugger when a Natural object has been interrupted.
For the interrupted Natural object, the Variable
maintenance function displays user-defined variables, global
variables and the database-related system variables
*COUNTER
, *ISN
and
*NUMBER
together with Natural data formats,
lengths and contents.
This section covers the following topics:
This section provides instructions for invoking either the Display Variables (summary) screen with a list of all variables, or the Display Variable (individual) screen with all details on a particular variable.
To display a summary of user-defined, global and database-related system variables
In the Debug Main Menu or in the
Debug Break window, enter function code V
.
Or:
Enter the following direct command:
DISPLAY VARIABLE variable,variable,...
The Display Variables (summary) screen provides a list of the variables specified for the interrupted Natural object. Long values may be displayed truncated on the screen. For arrays, only the contents of the first occurrence are displayed.
To switch between alphanumeric and hexadecimal representation of the variable contents, choose PF10 (Alpha) and PF11 (Hex).
To toggle between the truncated display of a variable and the full name display with the group name, variable name and indices (if relevant), choose PF5 (Zoom).
For variable, a system variable can also be specified. See Display System Variables for more information.
To display an individual variable in its entirety
From the Display Variables (summary)
screen, select a variable by marking it with the line command
DI
.
Or:
Enter the following direct command:
DISPLAY VARIABLE variable
Or:
On the List Object Source screen, in
the Source column, position the cursor at a variable name
and choose PF18 (Di Va).
The following restrictions apply when using PF18 (Di Va):
If a variable name (including the occurrences of
an array) spans more than one line, only the contents of the first line are
evaluated.
If an array name is not followed by an index, the
entire array is displayed.
If the index of an array is constant, for
example, array (3,2,6), only this occurrence is displayed.
If the index of an array is variable, for
example, array (i,j) or array (3:i), the variables are evaluated before the
respective occurrences of the array are displayed.
Or:
On the List Object Source screen, in
the Source column, position the cursor at a variable name
and choose ENTER.
When using ENTER, the same restrictions apply as for PF18, see above. However, the variable or array occurrence is displayed in a window instead of using the Display Variable (individual) screen, if the index for an array does not denote more than one occurrence. If the index for an array denotes more than one occurrence, data is displayed using the Display Variable (individual) screen.
Or:
Instead of positioning the cursor manually and choosing
ENTER you can also use Entire Connection for ease of use. Here, a double click
with the left mouse button positions the cursor and simulates the ENTER
key.
The Display Variable (individual) screen, or a window appears with all relevant specifications for the particular variable.
If data is displayed using a window and the length of the contents of the variable exceeds 256 bytes, only the first 256 bytes are displayed. For the Display Variable (individual) screen there is no such limit and you can navigate through the entire contents of the variable as described in the instructions below.
To display the entire contents of the variable or navigate within the contents
Choose PF22 to page backward or PF23 to page forward.
Or:
In the Position field, enter a numeric
value to start the display at a particular position.
You can choose PF10 (Alpha) and PF11 (Hex) to switch between alphanumeric and hexadecimal representation of the variable contents.
To display all occurrences of an array using screen functions
From the Display Variables screen,
select a variable by marking it with the line command
DI
.
Or:
Choose PF7 (-) and PF8 (+) to page
between the individual occurrences.
To display one or more occurrences of an array using direct commands
Use the following direct command:
DISPLAY VARIABLE variable-name(index-specification)
where variable-name
denotes the name of the variable, and
index-specification
denotes any of the
following: an index notation, an index range, or asterisk (*) for all
occurrences of a dimension. Variables that are part of the
index-specification are evaluated before the
respective occurrences are displayed.
Examples:
DISPLAY VARIABLE
ARRAY1(*) |
One-dimensional array:
Displays all occurrences of the one-dimensional
array |
DISPLAY VARIABLE
ARRAY1(1)
or
|
One-dimensional array:
Displays the first occurrence of the
one-dimensional array |
DISPLAY VARIABLE
ARRAY2(2,3:4) |
Two-dimensional array:
Displays the second occurrence of the first
dimension and the index notation of the second dimension of the two-dimensional
array |
DISPLAY
VARIABLE ARRAY3(1,3:4,*) |
Three-dimensional array:
Displays the first occurrence of the first
dimension, the index notation of the second dimension, and all occurrences of
the third dimension of the three-dimensional array
|
DISPLAY
VARIABLE ARRAY4(I,J + 1) |
Two-dimensional array:
Displays the occurrence of the two-dimensional
array |
To display system variables (except database-related system variables)
Enter the following direct command:
SYSVARS
The System Variables screen appears with a limited set of system variables.
To display a single system variable
Use the following direct command:
DISPLAY VARIABLE system-variable-name
where system-variable-name is the name of the system variable which can also be displayed using the SYSVARS direct command.
For variables of the type Handle, the name of the class of the
instance that the Handle refers to is displayed in alphanumeric representation.
If the class name is not available, the Globally Unique Identifier (GUID) is
displayed instead. If the class was defined within Natural, the class name or
GUID is suffixed with (NAT)
.
The contents of properties of an instance of a class cannot be displayed within the debugger.
This function does not apply to system variables.
This function is used to change the value of user-defined and global variables and the database-related system variables.
To modify the contents of a variable from the Modify Variable screen
Invoke the Modify Variable screen by
marking the variable with the line command MO
.
Or:
On the Display Variable screen, choose
PF5 (Mod).
On the Modify Variable screen, in the Contents field, change the value of the variable.
The new contents must be valid for the Natural data format of the modified variable since the format of a variable cannot be modified within the debugger.
On the Modify Variable screen, you can toggle between alphanumeric and hexadecimal representation of the variable value using PF10 (Alpha) and PF11 (Hex).
To modify the contents of a variable via direct command
Enter the following direct command:
MODIFY VARIABLE variable = new value
A message appears that confirms modification of the variable value.
Note:
The Modify Variables function or the
MODIFY VARIABLE
command can be disallowed by Natural
Security as described in
Components
of an Environment Profile in the Natural
Security documentation.