[comp.lang.asm370] debugging of assembler programs on CMS

RCOPROB@HDETUD1.TUDELFT.NL (Rob van Hoboken) (11/10/90)

I am still looking for a debugger for assembler programs.  I am quite pleased
with TSO TEST, but we now need a debugger on CMS.

I have worked with CP TRACE for a while and I think PER type traps are just
great.  I've been able to get to the bottom of some bugs that I would
otherwise not been able to fix (as easily?).

However, when you're using CP TRACE, you get dropped to CP level (of course)
and you get a very rudimentary DISPLAY command (only HEX).

Currently we use Arty's SESSION to switch between one CMS with the assembly
listing and the LOAD MAP, and another with the program under test.  On the
latter you DI your variable and look at what it is in HEX.  On your pocket
calculator you convert that to decimal, or you subtract that pointer value
from the start of the CSECT that you can find in LOAD MAP.......

I would like the facilities of INSPECT (of Codeview on the PC :-) available
for debugging assembler code.  Has anyone done this, or made his own tools
to get a better grip on his code?  Environment VM/SP 6 or VM/XA SP 2.

Are there any affordable products available in the commercial arena?  And for
MVS TSO ???

TOM@PENNDRLS.BITNET ("Thomas D. Denier") (11/13/90)

A long time ago I set up an assembler debugging system to track down a
particularly elusive problem with an RSCS modification (it turned out
to be due to sloppy coding practices by IBM, which IBM refused to fix).
I set up a USERID to run a test version of RSCS, and made my own
USERID a secondary user for it. I used IUCVTRAP to catch the console
messages from RSCS, processed them with Rexx code, and generated CP
commands to be executed on the test RSCS machine. The Rexx code I
wrote essentially did two things. It worked its way through RSCS
control blocks to find the origin address for the modified line
driver. Having done that, it stepped through the code one instruction
at a time. As each instruction in the line driver was executed the
Rexx code displayed the corresponding line of the LISTING file
generated when the line driver was assembled. I managed to find the
bug with just these capabilities, but the general approach I used
could be extended to provide other capabilities, such as
tracking register contents or displaying data areas in their source-
code formats.