March 30, 1979 When the AMSERV command in the EXEC is executed, the request for the tape ddname is satisfied immediately, by the response stacked with the &STACK statement. If you are executing a command that accepts multiple response lines, you have to stack a null line as follows: &STACK C D &STACK DLBL MULTFILE B !Qte: You can use the &BEGSTACK control statement to stack a series of responses in an EXEC, but you must use &STACK to stack a null line. 210 IBM VM/370 CMS User's Guide
Section 11. How VM/370 Can Help You Debug Your Programs Debugging is a critical part of the prograa development process. When you encounter problems executing application programs or when you want to test new lines of code, you can use a variety of CP and CftS debugging commands and techniques to examine your program while it is executing. You can interrupt the execution of a program to examine and change your general registers, storage areas, or control words such as the program status word (PSi), and then continue Also, yon can trace the execution of a program closely, so you can see where branches are being taken and when supervisor calls or I/O interruptions occur. In many cases, you may never need to look at a dump of a program to identify a problem. Preparing to Debug Before beginning to debug a program# you should have a current program listing for reference. When you use Vft/310 to debug a program, you can monitor program execution, instruction by instruction, so you must have an accurate list of instruction addresses and addresses of program storage areas. You can obtain a listing of your program by using the PRINT co:mand to print the LISTING file created by the assembler or compiler. To determine the virtual storage locations of program entry points, use the LOAD MAP file created by the LOAD and INCLUDE commands. If you are a CMS/DOS user, use the linkage editor map produced by the DOSLKED command. If the program that you are debugging creates printed or punched output and you will be executing the program repeatedly, you may not wish all of the output printed or punched. You should place your printer or punch in a hold status, so that any files spooled to these devices are not released until you specifically request it: cp spool printer hold cp spool punch hold When you are finished debugging you can use the CP QUERY command to see what files are being held and then you can select which files you may want to purge or release. When a Program Abends The most common problem you might encounter is an abnormal termination resulting from a program interruption. When a program running in a CMS virtual machine abnormally terminates (abends), you receive, at your terminal, the message: DMSITP141T exception EXCEPTION OCCURRED AT address IN ROUTINE name and your virtual machine is returned to the CMS environment. From the message you can determine the type of exception (program check, operation, specification, and so on), and, often, the instruction address in your program at which the error occurred. Section 11. How V8/310 Can Help You Debug Your programs 211