SC19-6203-2_VM_SP_System_Programmers_Guide_Release_3_Aug83.pdf
Page556(556 of 610)
600 608 610 618 620 628 630 638 640 648 650 658 660 668 670 678 680 688 690 698 6AO 6A8 6BO 6B8 6CO 6C8 6DO 6D8 6EO 6E8 6FO 6F8 SYSREF V(FVS) V(OPSECT) V(DEVTAB) V(FSTLKP) V(DMSINM) V(FSTLKW) V(PIE) V(lADT) V(USERSECT) V(DMSDIOR) V(DMSSCNN) A(O) V(TABEND) V(SUBSECT) A(O) V(DMSDIOW) V(DMSSTGST) V(ADTSECT) V(FREE) V(FRET) V(DMSPIOCC) V(PGMSECT) V(lOSECT) V(DMSDBD) V(DIOSECT) V(DMSABNUA) V(DMSERL) V(DMSCRD) V(DMSFREB) V(SVCSECT) V(ADTLKP) V(DMSAUDUP) A(O) V(OSRET) V(CMSRET) V(DMSSCNO) V(DMSEXC) V(DMSLDRA) V(ADTLKW) V(USABRV) V(EXTSECT) V(SCBPTR) A(O) H'O' I H'O' V(DMSLAF) V(DMSLAFNX) V(DMSLAFFE) V(DMSLAFFT) V(ADTNXT) V(DMSTRK) V(DMSTRKX) V(DMSTOO) V(DMSTOOX) V(DMSERS) V(TYPSRCH) V(DMSUAD) V(KILLEX) V(DMSFNST) V(DMSBRD) V(DMSBWR) V(DMSFNS) V(DMSSTTE) V(DMSSTTW) V(POINT) Figure 71. CMS Control B1ocl{S :: .•. : : \ :::: ) ( > ) / ) >: :< < ;:... :::.::: ) I I DMSNUC F S :-- ree torage USERSECT SUBSECT CMSCB TSOBLKS DMSERL I/O I FCBIO 'OBDCBPTlIOBECBPT DBGSECT 10SECT CMSCVT DCB I DECB PGMSECT DMSABW EXTSECT DMSERT r\\ DIOSECT AFT I USABRV I continued SYSNAMES DMSFRT FVS SVCSECT AFTSECT - -'" ADTSECT ,,- .......... I'.. DEVTAB ICMSAVEI B DOSCON ...... AVSAMSYS Terminal Buffer and Saveareas SYSREF /> FREELIST MAINLIST NUCON TXTDIRC (See Legend) MACDIR PRECMND SYSNAME Legend: INSTALID The projection of SYSREF is a SYSEMID sampling of areas within NUCON. Debugging With eMS 531
Reason for the Abelld Collect Illformation Determine the immediate reason for the abend and identify the failing module. The abend message DMSABN148T contains an abend code and failing address. The VM /SP System Messages and Codes manual lists all the CMS abend codes, identifies the module that caused the abend, and describes the action that should be taken whenever CMS abnormally terminates. You may have to examine several fields in the nucleus constant area (NUCON) of low storage. 1. Examine the program old PS\Y (PGMOPS\Y) at location X'28'. Using the PSW and current CMS load map, determine the failing address. 2. Examine the SVC old PSW (SVCOPSW) at location X'20'. 3. Examine the external old PSW (EXTOPSW) at location X'18'. If the virtual machine operator terminated CMS, this PSW points to the instruction execut ing when the termination request was recognized. 4. For a machine check, examine the machine check old PSW (MCKOPSW) at location X'30'. Refer to Figure 74 on page 541 in "Appendix A: System/370 Information" for a description of the PSW. Examine several other fields in NUCON to analyze the status of the CMS system. As you proceed with the dump, you may return to NUCON to pick up pointers to specific areas (such as pointers to file tables) or to examine other status fields. The complete contents of NUCON and the other CMS control blocks are described in the VM/SP Data Areas and Control Block Logic, Volume 2. The following areas of NUCON may contain useful debugging information. Save Area for Low Storage Before executing, DEBUG saves the first 160 bytes of low storage in a NUCON field called LOWSA VE. LOWSA VE begins at X'CO'. Register Save Area DMSABN, the abend routine, saves the user's floating-point and general regis ters. Field FPRLOG GPRLOG ECRLOG Device Location X'160' X'180' X'lCO' Contents User floating-point registers User general registers User extended control registers The name of the device causing the last I/O interrupt is in the DEVICE field atX'26C'. • Last Two Commands or Procedures Executed 532 VIyI/SP System Programmer's Guide
600 608 610 618 620 628 630 638 640 648 650 658 660 668 670 678 680 688 690 698 6AO 6A8 6BO 6B8 6CO 6C8 6DO 6D8 6EO 6E8 6FO 6F8 SYSREF V(FVS) V(OPSECT) V(DEVTAB) V(FSTLKP) V(DMSINM) V(FSTLKW) V(PIE) V(lADT) V(USERSECT) V(DMSDIOR) V(DMSSCNN) A(O) V(TABEND) V(SUBSECT) A(O) V(DMSDIOW) V(DMSSTGST) V(ADTSECT) V(FREE) V(FRET) V(DMSPIOCC) V(PGMSECT) V(lOSECT) V(DMSDBD) V(DIOSECT) V(DMSABNUA) V(DMSERL) V(DMSCRD) V(DMSFREB) V(SVCSECT) V(ADTLKP) V(DMSAUDUP) A(O) V(OSRET) V(CMSRET) V(DMSSCNO) V(DMSEXC) V(DMSLDRA) V(ADTLKW) V(USABRV) V(EXTSECT) V(SCBPTR) A(O) H'O' I H'O' V(DMSLAF) V(DMSLAFNX) V(DMSLAFFE) V(DMSLAFFT) V(ADTNXT) V(DMSTRK) V(DMSTRKX) V(DMSTOO) V(DMSTOOX) V(DMSERS) V(TYPSRCH) V(DMSUAD) V(KILLEX) V(DMSFNST) V(DMSBRD) V(DMSBWR) V(DMSFNS) V(DMSSTTE) V(DMSSTTW) V(POINT) Figure 71. CMS Control B1ocl{S :: .•. : : \ :::: ) ( > ) / ) >: :< < ;:... :::.::: ) I I DMSNUC F S :-- ree torage USERSECT SUBSECT CMSCB TSOBLKS DMSERL I/O I FCBIO 'OBDCBPTlIOBECBPT DBGSECT 10SECT CMSCVT DCB I DECB PGMSECT DMSABW EXTSECT DMSERT r\\ DIOSECT AFT I USABRV I continued SYSNAMES DMSFRT FVS SVCSECT AFTSECT - -'" ADTSECT ,,- .......... I'.. DEVTAB ICMSAVEI B DOSCON ...... AVSAMSYS Terminal Buffer and Saveareas SYSREF /> FREELIST MAINLIST NUCON TXTDIRC (See Legend) MACDIR PRECMND SYSNAME Legend: INSTALID The projection of SYSREF is a SYSEMID sampling of areas within NUCON. Debugging With eMS 531
Reason for the Abelld Collect Illformation Determine the immediate reason for the abend and identify the failing module. The abend message DMSABN148T contains an abend code and failing address. The VM /SP System Messages and Codes manual lists all the CMS abend codes, identifies the module that caused the abend, and describes the action that should be taken whenever CMS abnormally terminates. You may have to examine several fields in the nucleus constant area (NUCON) of low storage. 1. Examine the program old PS\Y (PGMOPS\Y) at location X'28'. Using the PSW and current CMS load map, determine the failing address. 2. Examine the SVC old PSW (SVCOPSW) at location X'20'. 3. Examine the external old PSW (EXTOPSW) at location X'18'. If the virtual machine operator terminated CMS, this PSW points to the instruction execut ing when the termination request was recognized. 4. For a machine check, examine the machine check old PSW (MCKOPSW) at location X'30'. Refer to Figure 74 on page 541 in "Appendix A: System/370 Information" for a description of the PSW. Examine several other fields in NUCON to analyze the status of the CMS system. As you proceed with the dump, you may return to NUCON to pick up pointers to specific areas (such as pointers to file tables) or to examine other status fields. The complete contents of NUCON and the other CMS control blocks are described in the VM/SP Data Areas and Control Block Logic, Volume 2. The following areas of NUCON may contain useful debugging information. Save Area for Low Storage Before executing, DEBUG saves the first 160 bytes of low storage in a NUCON field called LOWSA VE. LOWSA VE begins at X'CO'. Register Save Area DMSABN, the abend routine, saves the user's floating-point and general regis ters. Field FPRLOG GPRLOG ECRLOG Device Location X'160' X'180' X'lCO' Contents User floating-point registers User general registers User extended control registers The name of the device causing the last I/O interrupt is in the DEVICE field atX'26C'. • Last Two Commands or Procedures Executed 532 VIyI/SP System Programmer's Guide
SC19-6203-2_VM_SP_System_Programmers_Guide_Release_3_Aug83.pdf
Page558(558 of 610)
Field Location LASTCMND X'2AO' PREVCMND X'2A8' LASTEXEC X'2BO' PREVEXEC X'2B8' Contents Last command issued from the CMS or XEDIT command line. If a com mand issued in a CMS EXEC abnor mally terminates, this field contains the name of the command. When a CMS EXEC completes, this field con tains the name 'EXEC.' EXEC 2 and System Product Interpreter do not update this field. Next-to-Iast command issued from the CMS or XEDIT command line. If a command issued in a CMS EXEC abnormally terminates, this field con tains the name 'EXEC'. When a CMS EXEC completes, this field con tains the last command issued from the CMS EXEC. EXEC 2 and Sys tem Product Interpreter do not update this field. Last EXEC procedure invoked. EXEC 2 and System Product Inter preter do not update this field. Next to last EXEC procedure invoked. EXEC 2 and System Prod uct Interpreter do not update this field. • Last Module Loaded into Free Storage and the Transient Area The name of the last module loaded into free storage via a LOADMOD is in the field LASTLMOD (location X'2CO'). The name of the last module loaded into the transient area via a LOADMOD is in the field LASTTMOD (location X'2C8'). • Pointer to CMSCB The pointer to the CMSCB is in the FCBTAB field located at X'5CO'. CMSCB contains the simulated OS control blocks. These simulated OS con trol blocks are in free storage. The CMSCB contains a PLIST for CMS I/O functions, a simulated Job File Control Block (JFCB), a simulated Data Event Block (DEB), and the first in a chain of I/O Blocks (lOBs). • The Last Command The last command entered from the terminal is stored in an area called CMNDLINE (X'7 AO'), and its corresponding PLIST is stored at CMNDLIST (X'848'). Debugging With eMS 533
Register Usage External Interrupt Work Area EXTSECT is a work area for the external interrupt handler. It contains: The PSW, EXTPSW Register save areas, EXSA VE 1 Separate area for timer interrupts, EXSA VE I/O Interrupt Work Area IOSECT is a work area for the I/O interrupt handler. The oldest and newest PSW and CSW are saved. Also, there is a register save area. Program Check Interrupt Work Area PGMSECT is a work area for the program check interrupt handler. The old PSW and the address of register 13 save area are stored in PGMSECT. SVC Work Area SVCSECT is a work area for the SVC interrupt handler. It also contains the first four register save areas assigned. The SFLAG indicates the mode of the called routine. Also, the SVC abend code, SVCAB, is located in this CSECT. Simulated CVT (Communications Vector Table) The CVT, as supported by CMS, is CVTSECT. Only the fields supported by eMS are filled in. Active Disk Table and Active File Table For file system problems, examine the ADT (Active Disk Table), or AFT (Ac tive File Table) in NUCON. See a CMS nucleus map for the location of these CSECTs. In order to trace control blocks and modules, it is important to know the CMS reg ister usage conventions. Register GR1 GR12 GR13 GR14 GR15 Contents Address of the PLIST Program's entry point Address of a 12-doubleword work area for an SVC call Return address Program entry point or the return code The preceding information should help you to read a CMS dump. If it becomes necessary to trace file system control blocks, refer to Figure 71 on page 531 for more information. With a dump, the control block diagrams, and a CMS load map, you should be able to find the cause of the abend. Tips for debugging after receiving a program check abend (e.g. DMSITP141) are as follows: 534 VM/SP System Programmer's Guide
SC19-6203-2_VM_SP_System_Programmers_Guide_Release_3_Aug83.pdf
Page554(554 of 610)
Nucleus Load Map Load Map D T2CF158.10 «<--Display where the interrupt happened 2CF150 C01858CO DOF81BFF 000007F6 50C3D9C1 * ..... 8 ..... 6&CRA* 2CF160 E2C8189F 47FOC1E2 45EOAAB8 078745EO *SH ... OAS ........ * B 2CF15A «<--Continue as if no interrupt happened Each time the eMS resident nucleus is loaded on a DASD and an IPL can be per formed on that DASD, a load map is produced as a printer spool file. Save this load map. It lists the virtual storage locations of nucleus-resident routines and work areas. Transient modules are not included in this load map. When debugging' eMS, you can locate routines using this map. For information on obtaining a load map, see "Generating a eMS Nucleus" in the VM/SP Installation Guide. The load map of a disk-resident command module contains the location of control sections and entry points loaded into storage. It may also contain certain messages and card images of any invalid cards or replace cards that exist in the loaded files. The load map is contained in the third record of the MODULE file. This load map is useful in debugging. When using the Debug environment to ana lyze a program, use the program's load map to help in displaying information. There are two ways to get a load map. 1. When loading relocatable object code into storage, make sure that the MAP option is in effect when the LOAD command is issued. Since MAP is the default option, just be sure that NOMAP is not specified. A load map is then created on the primary disk each time a LOAD command is issued. 2. When generating the absolute image form of files already loaded into storage, make sure that the MAP option is in effect when the GENMOD command is issued. Since MAP is the default option, just be sure that NOMAP is not spec ified. Issue the MODMAP command to type the load map associated with the specified MODULE file on the terminal. The format of the MODMAP com mand is: I MODmap where: filename filename is the module whose map is to be displayed. The file type must be MODULE. Reading eMS Abend Dumps If an abend dump is desired when eMS abnormally terminates, the terminal opera tor must enter the DEBUG command and then the DUMP subcommand. The dump formats and prints: General registers Debugging With eMS 529
Extended control registers Floating-point registers Storage boundaries with their corresponding storage protect key Current PSW Selected storage Storage is printed in hexadecimal representation, eight words to the line, with EBCDIC translation at the right. The hexadecimal storage address corresponding to the first byte of each line is printed at the left. When CMS can no longer continue, it abnormally terminates. To debug CMS, first determine the condition that caused the abend and then find why the condition occurred. In order to find the cause of a CMS problem, you must be familiar with the structure and functions of CMS. Refer to "Part 2: Conversational Monitor System (CMS)" for functional information. The following discussion on reading CMS dumps refers to several CMS control blocks and fields in the control blocks. Refer to the VM / SP Data Areas and Control Block Logic, Volume 2 for details on CMS control blocks. Figure 71 on page 531 shows the eMS control block relationships. You also need a current CMS nucleus load map in order to analyze the dump. 530 VM/SP System Programmer's Guide