This is about Z390 TEST options.
In an IBM MVS environment, there's an option sometimes used for testing, called TSO TEST. It allows you to step through your program, displaying, and/or changing, registers and memory, and allows you to jump to a different location. Some programmers use it a lot, others not at all, but for those who use it, it's very useful.
There's a similar function in Z390 that allows users to do all those things and more. When you start your program, you get control first, then type "G" to run. (Or "T" to run and display instructions. You can say G12 (or T12) to run that many instructions and then stop and let you look at, and/or change memory and registers, and you can jump to a different location. (eg; J 15r%, J 15r%+32, J ff124. ) Those are the same as TSO TEST. When you're in Z390 TEST mode, HELP will show you all of the options that are available. You can, for example, stop when either a register, or memory, changes. (Eg: s ff34a.!=x'92' stop when memory location ff34a. is not x'92')
Recently, a couple more options have become available. When starting your test, you can specify several break points, in a file, and then start running your test after applying all of the break points. You do this by specifying the filename in the TEST command. EG:
set ddname=c:\your\file.name.txt
bat\ez390 c:\your\file.pgm.mlc test(ddname)
This is useful when you want to stop at several different places, maybe at the start of any of several different subroutines, maybe because something is amiss, and you haven't a clue where. It makes testing go much faster, stopping and starting the test again, over and over. You can code the break point file yourself, or you can use a new QBREAK program to create the break point file.
Another new option allows you to, for example, run your program, executing your routines many times (hundreds of times) and then stop, so you don't have to stop at break points all along the way. To use this, you want to do 3 things.
A) Assemble your program calling SAYTRACE, and then at several points in your program use the SAY macro to call the trace.
B) Run the program and let it abend. But along the way, the trace prints out the label (or offset) of each trace-call, and a sequence number of every call.
C) Then run again, specifying the trace # where you want to stop, and it will do that. You can specify a new STOP# and continue. OR, you can reply to the WTOR, +5,ABEND to set the next STOP#, but ABEND at the end of trace processing, to give Z390 TEST control and allow you to do all of the TEST functions. When you're done, you'll be given a J aaaaa. <=== to continue that you can use to resume the test.
Note that the STOP=### is coded in the SAYINIT macro coded in your program. However, if you think that's going to vary, you could code STOP=4. When the stop occurs, you can specify the STOP ## where you really want to stop.
https://sites.google.com/site/linlyons/qbreak - describes the QBREAK program and contains the source.
https://sites.google.com/site/linlyons/say-trace -describes the SAYTRACE program.
https://sites.google.com/site/linlyons/saytrace-code - contains the SAYTRACE source code.