Click here for St. Paul Software sponsor message
Tracking down
COBOL bugs with Trax
Maintenance, Year 2000 repairs go faster
with native mode HP 3000 debugger

Trax, version 2.5.07

Corporate Computer Systems.
670 N. Beers St., Bldg. 4
Holmdel, NJ 07733
Phone 732.739.5600
FAX 732.739.1818

Trax is a native mode application written in C that runs on any HP 3000 computer system. It has no special hardware or software requirements, and looks just as good on any standard terminal as it does under a terminal emulator.

The software is priced at a flat $3,000 per copy, and includes a DDS tape and one 180-page manual. Support is 15 percent of the purchase price per year and includes telephone support and new releases of the software. All prices are in US dollars.

Review by Shawn M. Gordon

When I first started working on HP 3000 computers back in 1983, all of my work was in Basic. This was kind of a cool introduction to the machine, because Basic had an interpreter and a compiler, so you could trace variables, set break points, single step your code, and so on. This made debugging quite simple, and I really found it convenient.

When I first started in COBOL on the HP 3000 I foolishly just ran COBOLII.PUB.SYS and tried typing in code, thinking it would work like Basic had. Well, of course that doesn’t work, so we have been left to our own devices for debugging. What the world really needed was a nice source-level debugger for COBOL, and that is exactly what Trax delivers.

While HP has come out with a couple of competing debuggers over the years – namely ToolSet and XDB – I don’t think they have ever come close to the beauty of Trax for COBOL. Trax has done a very nice job of implementing pseudo-windowing technology to make the product extremely easy to use on 3000 terminals or PCs running terminal emulators. Take a look at Figure 1, which shows the pop-up help window overlapped on the source window. The basic screen has a large window with the source code and a pointer of where in the code you are, and then there are a few lines at the bottom of the screen for executing commands.

How does it work?

Trax does its magic by having you compile your program with $CONTROL SYMDEBUG, and the debugger then keeps the compile listing of the code. Then you build a little cross-reference file that tells Trax where the object code and the code list reside. Somehow Trax synchronizes the source to the object and displays the source to you. This is how you get the source debugging. I’m not exactly sure what information that SYMDEBUG puts into the object, but that is obviously the other critical piece.

I can’t tell how Trax is doing its nice little overlap windows, but they are very fast, and look quite nice. It makes the interface very intuitive. The pop-up online help really eases the process as well.

Features

Outside of the standard code window, another window you will make a lot of use of is the Watch Window. Take a look at Figure 2 and you will see that we opened a two line watch window with WW 2. We then say that we want to display in the watch window the contents of the variable COM-RECNUM with WD COM-RECNUM. At the top of the screen you will see a small window with the current contents of COM-RECNUM displayed. You are able to easily trace, display, or change the value of any variable at any point in the execution of the program.

Figure 3 illustrates a much more esoteric – but potentially useful – application of Trax: the ability to display the code in assembler and single-step through, one machine instruction at a time. At the top of the screen is a display of the various registers with hex values. If you are low level enough to be able to follow this kind of stuff, it’s there for you to enjoy.

Trax will let you do pretty much anything that you want with source code in terms of break points, tracing, single-stepping, jumping around code, and modifying the value of variables.

Installation and Documentation

Installation is a very straightforward RESTORE and STREAM combination, pretty typical for most HP 3000 software products today.

The documentation is well written, starting with a nice, fundamental tutorial and following with a complete reference guide. There is a good self-running demo of the product that shows you pretty much all the possible examples of the uses of the product.

The Test Drive

To get started using Trax I fired up the self-running demo, cracked open the book and switched back and forth for about 10 minutes. I then went through the examples from the manual and tried out the various commands on the provided sample code for about 30 minutes. I now felt it was time to start running my own programs through Trax. I needed to build up a little infrastructure first, like having a group for the compile lists, creating my driver files for Trax, and modifying my compile process. That took a few minutes more, and then I was off and running.

All and all, it’s quite simple to get set up and be productive with Trax, but you will want to be aware of the SYMDEBUG in your code and make sure to remove it for your final compile. I found that this is mostly a matter of training and setting up the correct procedures.

Conclusions

For anyone doing any serious HP 3000 COBOL development or maintenance, Trax is an absolute must. You will save an enormous amount of time in debugging with this tool. The software is functional, does everything you could possibly want, is reasonably priced and is easy to use. If you have been doing any Windows-based development you have gotten used to these types of tools. I can’t imagine not wanting to have them for your HP 3000 development as well.

Shawn M. Gordon, whose S.M. Gordon & Associates firm supplies HP 3000 utilities, has worked with 3000s since 1983.


Copyright 1998, The 3000 NewsWire. All rights reserved.