Transaction Dump Output
Related Topics
When a storage violation is detected and prevented by Code Debug CICS, the output you receive may include a transaction dump. Upon request, Code Debug CICS creates an ASRA transaction abend dump. By using the dump and the following instructions, you can determine exactly what would have caused the storage violation. The PSW and registers in the dump are from your program and can be used to find the instruction that is in error. The PSW points to the instruction in error, not past it.
Code Debug CICS uses two storage areas chained off the TCA as user-class storage (USER24 or USER31, depending on TaskDataLoc). These two storage areas are storage protection temporary save area (TSA) and input register work area (INRWORK). They are located on the standard storage chains. TSA may be identified by an eye catcher PROTAID followed by x'EE'. INRWORK may be identified by an eye catcher PROTINR followed by x'EE'. For clarification and emphasis see Transaction Dump Example and the explanation that follows the figure.
CSMT Message
Code Debug CICS also writes a message to transient data destination CSMT or whatever destination was specified for global parameter STORAGE_PROTECTION_VIOLATION_MSG_QUEUE. That message contains:
- Date of the storage violation
- Time of the storage violation
- Storage violation message
- Terminal or client IP address associated with the storage violation
- Program associated with the storage violation
- Offset into the associated program of the offending instruction. This offset is for use with the compile listing’s PMAP or CLIST. It does not reflect additional modules/stubs linked with the load module.
Transaction Dump Example
The following figure is an example from a transaction abend dump created by Code Debug CICS. The numbered references are discussed following the figure.
Transaction Dump Example
TRANSACTION STORAGE-USER24 ADDRESS 0022BF90 TO 0022BFFF LENGTH 00000070
[1]
00000000 C2F0F0F0 F0F0F6F0 8C40005E 40404040 00560000 E7D7C5C4 5C5C5C5C 40F0F440 *B0000060. .; ....XPED**** 04 * 0022BF90
00000020 C1E4C740 F2F0F0F2 40F1F27A F4F57AF5 F240E2E3 D6D9C1C7 C540E5C9 D6D3C1E3 *AUG 2002 12:45:52 STORAGE VIOLAT* 0022BFB0
00000040 C9D6D540 F0F0F0F4 40E7C3C2 F240C3E6 C4C5D4C3 C2F240F0 F0F1C3F4 F4404040 *ION 0004 XCB2 CWDEMCB2 001C44 * 0022BFD0
00000060 40404040 40404040 C2F0F0F0 F0F0F6F0 * B0000060 * 0022BFF0
TRANSACTION STORAGE-USER24 ADDRESS 0022B1D0 TO 0022B8FF LENGTH 00000730
[2][2]
00000000 C2F0F0F0 F0F0F6F0 8C000720 00000000 D7D9D6E3 C9D5D9EE 00000003 0022B1E8 *B0000060........PROTINR........Y* 0022B1D0
00000020 0022A788 000C7860 0022B478 0005E780 17204CBC 000061A8 0022B1E8 000F31C8 *..xh...-......X...<.../y...Y...H* 0022B1F0
00000040 002000D0 0022AFF0 000FC008 8004DE20 800F3552 000C86CA 16304600 002073A8[3]*.......0..............f........y* 0022B210
00000060[3]0022BF88 17203EA8 000FC338 16263FCC 002000D0 16309510 16308510 163044C0 *...h...y..C...........n...e.....* 0022B230
00000080[3]172031E4 17204B1A 172031A4 00207308 97204CBC 00000000 079D2000 97204CEC[4]*...U.......u....p.<.........p.<.* 0022B250
000000A0 000061A8 00002000 7FFFFFFE 00000000 00002000 00000000 97204CEC 80000000 *../y....................p.<.....* 0022B270
000000C0 00000000 00000000 00000000 00000000 00000068 000CBAB0 00[5]1E8 800C8640 *...........................Y..f * 0022B290
000000E0 20000000 0022A788 00000000 9614E058 41EE0008 9612E050 90CFE068 58DE0058 *......xh....o.......o...........* 0022B2B0
00000100 58FE0060 07FF9624 F03E41FF 00089622 F03690CF F04E58DF 003E58FF 004607FF *...-..o.0.....o.0...0+..........* 0022B2D0
00000120 00000000 00000000 00000000 00000000 00000000 00000000 0022B938 0022BAF8 *...............................8* 0022B2F0
00000140 00000000 00020104 0E000000 0022B1E8 00000000 000E0806 00000000 97204066 *...............Y............p. .* 0022B310
00000160 00000000 00000000 00000000 97204CBC 164B53F0 001CD984 00002000 00000000 *............p.<....0..Rd........* 0022B330
00000180 00000000 000002A0 00009000 00000000 00000000 00000000 00000000 00000000 *................................* 0022B350
000001A0 800DB954 9604C020 41CC0008 9602C018 90CFC030 58DC0020 58FC0028 07FF0000 *....o.......o...................* 0022B370
000001C0 0022BF88 00207308 00200050 172030A8 000FC338 16263FCC 000C9640 161CFFFF *...h...........y..C.......o ....* 0022B390
000001E0 0022A488 163044C0 000CBAB0 0022B1E8 800C8640 00207110 97203DE2 202030A8 *..uh...........Y..f ....p..S...y* 0022B3B0
00000200 00000000 00000000 00000000 00000000 000FC008 00000000 000C8902 00000000 *..........................i.....* 0022B3D0
00000220 00000000 00000000 00000000 0022B404 0022B40C 162FB7DC 00007600 162FBD64 *................................* 0022B3F0
TRANSACTION STORAGE-USER24 ADDRESS 0022A780 TO 0022B1CF LENGTH 00000A50
[6][6]
00000000 C2F0F0F0 F0F0F6F0 8C000A3C 00000000 D7D9D6E3 C1C9C4EE 00000003 0022A788 *B0000060........PROTAID.......xh* 0022A780
00000020 0022A788 000C7860 0022B478 0005E780 0022B1E8 16309510 0022B1E8 000DB7E0 *..xh...-......X....Y..n....Y....* 0022A7A0
00000040 002000D0 0005E988 000FC008 8004DE20 000DB989 000D5AF8 00000000 00000000 *......Zh...........i...8........* 0022A7C0
00000060 00000000 0022B1E8 00000000 000000BB 00000000 00000000 00000000 00000000 *.......Y........................* 0022A7E0
00000080 00000000 00000000 0000000[7]7203088 A6000000 F0F0F0F4 164B53F0 000C7860 *...............hw...0004...0...-* 0022A800
000000A0 00000000 00000000 00000000 0022BF88 00000000[7]404040 40404040 40404040 *...............h.... * 0022A820
000000C0 00000000 0005E780 000FC008 8004DE20 164B53F0 91000000 16304600 002073A8 *......X............0j..........y* 0022A840
000000E0 0022BF88 0022A788 97204CEC 000061A8 000C9640 7FFFFFFE 000000E5 00000068 *...h..xhp.<.../y..o .......V....* 0022A860
00000100 000CBAB0 0022B1E8 800C8640 00207308 800C913E 0000001C 0022BF88 800CE328 *.......Y..f ......j........h..T.* 0022A880
00000120 0005E780 0022A788 000C7860 800CD530 0022BF8F 0022BF87 0022B1E8 000CE530 *..X...xh...-..N........g...Y..V.* 0022A8A0
00000140 9572B9F8 0022AFF0 000FC008 8004DE20 800CEBBE 00000004 00000000 00000000 *n..8...0........................* 0022A8C0
00000160 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 *................................* 0022A8E0
00000180 00000000 00000000 00200448 00228E27 16303798 16310A17 0022BF78 0022BF87 *...................q...........g* 0022A900
000001A0 0022BF78 0022BF87 00000000 00000000 00000000 0022BF88 0022BF88 00000000 *.......g...............h...h....* 0022A920
000001C0[8]5E000002 E2E3D6D9 00000000 00000000 00000000 00000000 00000000 00000000 *;...STOR........................* 0022A940
000001E0 00000000 00000000 00000000 00000000 00000000 800CDAE2 164B14B0 00000000 *.......................S........* 0022A960
00000200 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 *................................* 0022A980
00000220 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 *................................* 0022A9A0
00000240 00000000 00000000 00000000 00000000 00000000 00000000 D6F5F3F0 F661F2F8 *........................O5306/28* 0022A9C0
00000260 61F0F2F1 F74BF2F0 000F8EE0 0002A000 02000100 00000000 00000000 00000000 */0217.20........................* 0022A9E0
00000280 00000000 00000000 00000000 00000000 0BF80000 16310E80 000FD0B0 16310ED0 *.................8..............* 0022AA00
The following explanation discusses the numbered references in the above figure .
[1] Message written to transient data destination CSMT.
[2] INRWORK identified by PROTINR eye catcher followed by x'EE'.
[3] INRWORK + x'58' contains the contents of registers 0 through 15 as they were at the time of the attempted storage violation.
[4] INRWORK + x'9C' contains the address of the instruction that would have caused the storage violation.
[5] INRWORK + x'B8' contains the address of the instruction executed prior to the instruction that would have caused the storage violation. For example, if the storage violation was caused by a bad branch, this would be the address of the branch instruction.
[6] TSA identified by PROTAID eye catcher followed by x'EE'.
[7] TSA + x'A8' and TSA + x'D4' contain the address validation information. Beginning at x'A8', there is a four-byte length and four-byte address for field 1. This is followed by a four-byte length and four-byte address for field 2 and again for field 3. Beginning at x'D4', there is a one-byte code for each of the three fields (as described in Address Validation Codes).
[8] TSA + x'1C0' contains the Code Debug CICS detailed error code.
Address Validation Codes
Each of the three address validation entries beginning at TSA + x'A8' contains a four-byte length and a four-byte virtual storage beginning address. For each of the three entries, there is a corresponding one-byte code beginning at TSA + x'D4'. The following values are accumulated in that one-byte code field:
- x'01' - The address list entry identified as a storage violation. This is the entry in error.
- x'10' - Store protection validation was requested for this address.
- x'20' - Branch address protection validation was requested for this address.
- x'40' - Fetch protection validation was requested for this address.
- x'80' - Last entry in the address list.
For example, if the 1 byte CODE field contains x'91', this indicates that this is the final entry in the list (x'80'), it was monitored for store protection (x'10'), and a storage violation was detected (x'01'). The beginning address and length fields describe the storage involved. The detailed error code describes the operation that would have caused a storage violation.
Detailed Error Codes
The Code Debug CICS detailed error code located in the TSA at x'1C0' explains the detected storage violation. With the code from the TSA, see Code Debug CICS system messages to locate the corresponding explanation.