Appendix F. Displaying and modifying CICS storage
with DTST
The DTST transaction enables you to display, scan, and modify CICS® storage.
It is a BMS transaction and runs on a 3270 terminal.
Starting DTST
This topic describes the methods of starting DTST and gives examples.
Before you begin, if you need to modify storage, verify with your
system programmer that you have the authority to modify CICS key
storage, USER key storage, or both. "Authorizing
DTST transaction to modify storage" in Debug Tool Customization Guide describes
the steps the system programmer must do to authorize you to modify CICS key
storage, USER key storage, or both.
You can start the DTST transaction with or without specifying a
base address. A base address can be any of the following items:
- A literal hexadecimal number (for example, 45CB00)
- The name of a program (for example, MYPGM)
- An offset calculation or indirection (for example, 45CB00+40)
You can also specify that DTST take a specific action when it starts.
You specify an action with one of the following characters:
- P, which means to page forward or backward.
- S, which means to search through storage until a specific target
is found.
Syntax of the DTST transaction describes all the parameters.
Examples of starting DTST
The following examples illustrate how to enter the DTST command
with parameters.
- Example: Starting DTST and specifying a literal hexadecimal
number
-
To display storage at address 45CB00, enter the command DTST 45CB00.
The base address is 45CB00.
- Example: Starting DTST and specifying a program name
-
To display program storage for program MYPROG, enter the
command DTST P=MYPROG.
The base
address is the address of the program in storage.
- Example: Starting DTST and specifying an offset
- To display storage at an negative offset of D0 bytes from address
45CB00, enter the command DTST 45CB00 - D0.
The
result of the calculation (45CB00-D0) is the base address. In this
example, the base address is 45CA30.
To display program storage
at an positive offset of 28 bytes from the starting address of program
MYPROG, enter the command DTST P=MYPROG+28.
If
the starting address of program MYPROG is 8492A000, then the result
of the calculation (8492A000+28) is the base address (8492A028).
If
full words generate protection exceptions (for example, in fetch-protected
storage), DTST displays question marks in the Storage Key field.
- Example: Starting DTST with indirect addressing
-
To display storage by indirection, use an asterisk (*) to
indicate 31-bit addressing or an at sign (@) to indicate 24-bit addressing.
DTST uses the full word at that address as the base address.
If
you want to use the full word at address 45CB00 as the base address,
enter the command DTST 45CB00*.
You
can combine multiple offset or levels of indirection. For example,
if you enter the command DTST 45CB00 + b* +
14** + 14*, DTST calculates the base address in the following
order:
- Beginning with 45CB00, add B0. The result is 45CBB0.
- Go to location 45CBB0 to obtain the address at that location.
For this example, assume that the address is 29AD00.
- Add 14 to 29AD00. The result is 29AD14.
- Go to location 29AD14 to obtain the address at that location.
For this example, assume that the address is 1838AD.
- Go to location 1838AD to obtain the address at that location.
For this example, assume that the address is 251936.
- Add 14 to 251936 to get the result 25194A.
- Go to location 25194A to obtain the address at that location.
For this example, assume that the address is 3920AD. DTST opens the
memory window and display the contents of storage beginning at 3920AD.
- Example: Starting DTST with the BASE keyword
- The BASE keyword can make it easier to write long command
lines. The BASE keyword is assigned the value of the base
address of the previous DTST command. For example, if you enter the
command DTST 45CB00+10*, BASE is
assigned the value of the result of 45CB00+10*. If you want to use
the value of 45CB00+10* in a subsequent command, use the BASE keyword.
For example, DTST BASE+20*.
- Example: Starting DTST with a scan request
- You can specify data that you are looking for by adding a scan
request to the DTST command. For example, to find the data ‘WORKAREA’
starting at base address 45CB00, enter the command DTST
45CB00,S='WORKAREA'. The scan starts at the base address and
continues for 4K bytes. To find the data ‘WORKAREA’ starting
at base address 45CB00 at the beginning of every double word, enter
the command DTST 45CB00,S8='WORKAREA'.
You can specify that the scan be done in a negative direction, which
means that addresses are decreasing in value.
- Example: Starting DTST with a page number request
- You can specify a page you want displayed by adding a page request
to the DTST command. For example, to display storage that is 5 pages
from the base address 45CB00, enter the command DTST
45CB00,P=5. This is equivalent to entering the command DTST 45CB00, then pressing the page down keys
five times. If you enter the command DTST 45CB00,P=-5,
it is equivalent to entering the command DTST
45CB00, then pressing the page up keys five times.
Modifying storage through the DTST storage window
After you start the DTST transaction, the storage window is displayed.
You can modify the contents of storage being displayed in the storage
window.
Before you begin, verify with your system programmer that you have
the authority to modify CICS key storage, USER key storage,
or both. "Authorizing DTST transaction
to modify storage" in Debug Tool Customization Guide describes the steps
the system programmer must do to authorize you to modify CICS key
storage, USER key storage, or both.
After you verify that the previous DTST command ran successfully,
you can do the following steps to modify storage.
- Press PF9 to enter modify mode. The command line becomes
protected, and columns four through seven become unprotected.
- Move your cursor to data you want to modify and type in the
new data. You can modify several different locations at the same
time.
- Press Enter. DTST verifies that the data you entered
is valid. DTST makes all modifications that contain valid data. If
any word contains invalid data, the line contains that word is highlighted.
You can correct the invalid data, then press Enter to verify the change.
- Press any function key to end modify mode. However, you
can not press any of the following keys:
- PF10
- PF11
- the CLEAR key
- the Enter key when you have typed in any modifications
Navigating through the DTST storage window
There are several ways to navigate through the DTST storage window.
After you enter the DTST command, do the following steps:
- Choose one of the following methods to navigate through the
window:
- Use the PF7 or PF8 keys to move up or down a page, respectively.
- Move your cursor to the command line and enter a new address.
All spaces are ignored, except the one after the transaction name
(DTST) and any within apostrophes (').
- Move your cursor over any full word displayed in column 4 or 6,
then press Enter.
- To close the DTST storage window, press the PF3 key.
DTST storage window
The DTST storage window is the interface you use to display and
modify storage.
+----------------------------------------------------------------------------+
| Command : DTST 00100000 |
| Response : Normal |
| Page : HOME Storage Key : USER |
+----------------------------------------------------------------------------+
| 00100000 0000 00 | C4A3D983 826E6E6E A7E10888 A0050004 | DtRcb>>>x..h.... |
| 001 1 10 0 2 3 | 001 4 12 000 5 00 000 6 00 000 7 00 | ....... 8 ...... |
| 00100020 0020 02 | A7E09170 8009D150 A7E152D8 00000000 | x.j...J.x..Q.... |
| 00100030 0030 03 | 00000001 000C5258 00000000 00000000 | ................ |
| 00100040 0040 04 | A6BF6098 800A4968 800B01DB 00000000 | w.-q.......Q.... |
| 00100050 0050 05 | 00000000 00000000 800B30CB 80140C10 | ...........H.... |
| 00100060 0060 06 | 8074B6A0 80155CA8 80160818 801683C0 | ......*y......c{ |
| 00100070 0070 07 | A6BFD338 00000000 A6BFD190 00000000 | w.L.....w.J..... |
| 00100080 0080 08 | 00000000 00000000 00000000 00000000 | ................ |
| 00100090 0090 09 | 00000000 00000000 00000000 00000000 | ................ |
| 001000A0 00A0 10 | 00000000 00000000 00000000 00000000 | ................ |
| 001000B0 00B0 11 | 00000000 00000000 00000000 00000000 | ................ |
| 001000C0 00C0 12 | 00000000 00000000 00000000 00000000 | ................ |
| 001000D0 00D0 13 | 00000000 00000000 00000000 00000000 | ................ |
| 001000E0 00E0 14 | 00000000 00000000 00000000 00000000 | ................ |
| 001000F0 00F0 15 | 00000000 00000000 00000000 00000000 | ................ |
+----------------------------------------------------------------------------+
| 1=Hlp 2=Retrv 3=End 5=RepeatScan 7=Up 8=Down 9=Modfy ENTER=ReCalc |
+----------------------------------------------------------------------------+
The following list describes all the parts of the interface.
- Command
- The most recent command you entered.
- Response
- The result of the most recent command you entered. If the command
was successful, the word Normal is displayed
in this field. If the command was unsuccessful, a message indicating
the type of error that occurred in the previous command is displayed.
- Storage Key
- Displays one of the following values:
- CICS
- Indicates that the CICS[hyphen]key storage is displayed.
- USER
- Indicates that the USER[hyphen]key storage is displayed.
- KEYn
- Indicates that Key n storage is displayed.
- ????
- Indicates that the key is not recognized.
- !!!!
- Indicates that the key was not obtained.
- Column 1
- Displays the address of storage. The addresses are organized
on a word boundary. If you enter an address that is not on a word
boundary, the bytes preceding the address, up to the beginning of
the word, are padded with blanks.
- Column 2
- Displays the offset of the address in column 1 from the base
address. The offset is displayed in hexadecimal.
- Column 3
- Displays the line number (0 to 15) in the window. The line number
is displayed in decimal.
- Columns 4 through 7
- Displays the contents of storage in hexadecimal. Each column
represents four bytes.
- Column 8
- Displays the contents of storage contents in EBCDIC.
Some of the following PF keys work only if the previous operation
was successful. If the previous operation was successful, the word Normal is displayed in the Response field.
- PF1 (Help)
- Displays the help screen. The help screens display command syntax
with examples and lists all keywords.
- PF2 (Retrieve)
- Retrieves the previous command from the command history. DTST
stores up to 10 commands in the command history, discarding the older
commands to save newer commands.
- PF3 (Exit)
- Clears the screen and ends the transaction.
- PF5 (RepeatScan)
- Repeats the scan operation.
- PF7 (Up)
- Moves one page (256 bytes) back in storage. The base address
is not recalculated.
- PF8 (Down)
- Moves one page (256 bytes) forward in storage. The base address
is not recalculated.
- PF9 (Modify)
- Starts modify mode.
- Enter
- DTST does one of the following tasks:
- When the cursor is on a full word, DTST uses that full word as
the base address for the next command.
- Recalculates the base address from the input string, even if it
has not changed, then changes the memory window so that the new base
address is shown at the top of the screen.
Navigation keys for help screens
DTST provides a number of online help screens. You can access these
screens by pressing PF1 on the main screen (when you are not in modify
mode), which displays the main help index. You can navigate through
the help screens by using the PF keys described in this topic.
- PF3
- Close the help screen and return to the DTST storage window.
- PF7
- Display the previous screen.
- PF8
- Display the next screen.
- PF10
- Display the main help index.
- PF11
- Display the last help screen.
Syntax of the DTST transaction
The DTST transaction displays storage in a memory window. You can
navigate through the storage area and modify storage.
The following list describes the parameters:
- address
- A one to eight character hexadecimal value.
- BASE
- The value of the base address of the previously entered DTST
command, which ran successfully.
- displacement
- A one to eight character hexadecimal value.
- modifier
- Indicates the direction in which to conduct the action. The
default is forward, which means an increasing value. For the backward
direction, use the negative sign (-).
- P
- Indicates that you are specifying the name of a program and
you want the starting address of that program to be used as the base
address.
- program_name
- Name of a program.
- request_letter
- Indicates the action you want DTST to take. The request_letter can
be one of the following characters:
- P
- Indicates that you want DTST to page up or down.
- S
- Indicates that you want DTST to search through storage and stop
when it finds the target. The S request has the following syntax:
- value
- Hexadecimal or decimal value or a string enclosed in quotation
marks (") or apostrophes ('). It is used to indicate the number
of pages you want DTST to scroll or the target of a search.
Examples
To indicate that you want to display the fifth page (or screen)
of memory after the address x'01000000', enter the command DTST 01000000,P=5. This is equivalent to entering DTST 01000000, then pressing PF8 five times.
To indicate that you want to find x'00404040' starting at address
x'01000000', enter the command DTST 01000000,S=00404040.
|
This information center is powered by Eclipse technology. (http://www.eclipse.org)