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.