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. |
||||||||
Review by Shawn M. Gordon 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 doesnt 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 dont 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. 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. Im not exactly sure what information that SYMDEBUG puts into the object, but that is obviously the other critical piece. I cant 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, its 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. 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, its 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 cant 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. |