Path: utzoo!utgpu!news-server.csri.toronto.edu!cs.utexas.edu!sdd.hp.com!ucsd!ucbvax!ucf1vm.BITNET!news From: news@ucf1vm.BITNET Newsgroups: comp.lang.asm370 Subject: Re: Single Step Debugger Message-ID: <9011271513.AA11760@ucbvax.Berkeley.EDU> Date: 24 Nov 90 23:19:39 GMT Sender: daemon@ucbvax.BERKELEY.EDU Reply-To: IBM 370 Assembly Programming Discussion List Distribution: inet Organization: The Internet Lines: 44 In article <2624@hsi86.hsi.com> siperas@hsi86.hsi.com (Steve Siperas) writes: >Hi >Does anyone know of any Single Step Debugging Tools for Batch Assembler >Programs under VM. Has been looked into but doesn't seem to be any vendors >with this product. I am not sure what you mean by "batch" assembler under VM. If you are talking about anything other than running a bal program under CMS with you sitting there at the terminal stepping thru the program, the following doesn't apply. I do a lot of assembly programming under VM/CMS. While a symbolic debugger would be nice, I have never worked at a place that did enough assembly programming to justify getting one, so I make use of the native debugger under VM, known as PER. Long available as a user mod, PER became standard in VM at release 3 of VM/SP. PER plus TRACE give the ability to single step sections of code or all of it, and set/reset various breakpoints. (Under VMXA/SP, PER has been folded into the TRACE command but the PER command is a synonym for TRACE). Consult the CP command refrence for details & syntax, its too long to go into here. A few hilites: * Trace all/specific instructions within a range/everywhere. * Trace interrupts, i/o, program, etc. * Trace braches. * Trace storage alteration. * o/p to terminal, printer, both. * Stop on an event/continue after displaying trace info. * Execute (almost) any CP command at the stop. * Don't display the trace info until the nth hit. * Only display every nth hit. * Etc etc etc. You should have a reasonably current assembly listing handy, and a good idea is to assemble it to the address that CMS will load it at when running (usually x'20000' or x'E000'). To do this use: NAME START X'20000' instead of: NAME CSECT at the begining of the program. That way you can read addresses off the listing without having to constantly be adding/subtracting x'20000'. If you have specific questions, follow up here or email to Richg@locus.com