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.