CS611
Programming Assignment 4
Spring 1997


Edit the file debugger.C to complete the functionality of the debugger facility for the UNH implementation of the Java Virtual Machine known as java611.

The directory ~cs611/public/prog4 contains debugger.C, as well as a Makefile, README files, and the relevant java611 header files.

The Makefile, to save on your disk quota, links with a large object file stored in ~cs611/public/stub4 and builds the executable in /usr/tmp. The Makefile also stores a "link" to the executable in your default directory so this "non-local" build should be transparent to you.

The README files describe how to use java611 and some debugger implementation hints.

The distributed header files document the necessary parts of java611 that you will need to use to complete this assignment. The three key components you will need to use are frame objects, operation objects, and the debugger support utilities described in debugger.h.

Your program will be graded primarily by testing it for correct functionality. Points will be assigned in the following manner:

All output should be sent to stdout/cout.

All commands should check to be sure there is a program active (a non-null Frame pointer). If not, an error message should be written to stdout/cout. Other error checking and reporting should be performed as required by particular commands.

You may lose points if your program is not properly structured or adequately documented. The same general guidelines given on program 2 are still in effect.

The executable for the full implementation of java611 is available in ~cs611/bin/java611. This executable is for use on Alpha machines. To execute the test programs you first compile them with the Java compiler: on hopper/christa: /usr/local/java/bin/javac. And then you can execute them with java611 or with the official Java virtual machine implementation: on hopper/christa /usr/local/java/bin/java. To test with your code you execute the version of java611 that you build by invoking the distributed Makefile.

Since the rest of java611 is written in C++, it makes sense to do this assignment in C++. Students with little or no prior C++ experience should have joined Mark's help group to alleviate difficulties using C++. As in program 3, the number of C++ features that you need are really quite few.

Your programs will be graded using an Alpha machine (e.g. hopper and christa) so be sure to test in that environment. In fact, java611 is not guaranteed to work in any environment other than the Alpha.

Your programs should be submitted for grading from either hopper or christa. To turn in this assignment, type:
~cs611/bin/submit prog4 debugger.C

Notes:

Submissions can be checked by typing:
~cs611/bin/scheck prog4

To receive full credit for the assignment, you must turn in your files prior to 8am on Monday March 31. Late submissions will be accepted at the penalty of 5% per day up to one week late.

Remember: as always you are expected to do your own work on this assignment.


Last modified on March 11, 1997.

Comments and questions should be directed to pjh@cs.unh.edu