CS560 TA Web PAge

Spring 2007 TA: Mitch Horton

We put this page together to provide some additional lab tips and help keep the class informed about lab policies, submissions, and other administrivia. Check back often.


Links


First Things First

If one thing is essential to success in this class, it's reading the documentation. The man pages are often your best reference - whether you are implementing a shell or writing your own system calls. Learn to use them. Some utilities don't have extensive man pages, but instead use the info system. You can see the gcc info page by typing info gcc , for instance.

Lots of information on the GNU utilities like gcc, gdb and make can be found at the GNU documentation site at www.gnu.org/manual.


Submitting Labs

Use /home/cs560/560submit.
  1. Change to the directory containing the lab files.
  2. Remove all unnecessary files (.o files, test files, test code).
  3. Run the /home/cs560/560submit script.
  4. Enter the number of the lab you're submitting at the prompt.
  5. Your lab has now been submitted. You should recieve a confirmation when your TA unpacks the lab. If you do not recieve this confirmation within a few days, email your TA.
An example:
UNIX> pwd
/home/jones/cs560/lab1
UNIX> ls
jshell*     jshell.c    jshell.o     makefile
UNIX> rm jshell.o jshell 
UNIX> ls
jshell.c   makefile
UNIX> ~cs560/560submit
<< Which Lab ??  (1,2,3,4,5,6,7,8)  >>
1


Tue Aug 29 16:51:50 EDT 2000 Lab1 mailed to cs560


Lab Grading Hints

For maximum credit, your lab should (at least) ...


Late Labs


Compiling and Linking in CS560

You will be doing a lot of code compilation in 560. We assume everyone knows how to use the GNU compiler, gcc. Don't use the Sun compiler, cc.

A couple of handy switches for gcc:

In most labs you will be using Dr. Plank's Dllist, Jval, and JRB-tree libraries. We have provided static libraries for you to link against under ~cs560/lib. Browse around there and see what you can find. You'll notice that the libraries are organized by architecture; we have both Solaris and Linux libs.


make

560 will be grim without make. Most of you are doubtless familiar with it, but if you aren't, read the info page and get cozy with this wonderful utility. We prefer the use of GNU make, which is in /usr/local/bin/make on the Linux boxes. Beware - there are other makes on our system and they don't all share syntax.


Debug tools

You will be doing lots of debugging. GDB is always a good place to start. If you don't already know how, check out the docs and play with stepping through a running program. One feature of GDB which will be particularly handy is its ability to connect to an already running process.

Purify - this is a commercial package which finds all kinds of code problems, from memory leaks to bounds overruns. It is VERY GOOD STUFF and is simple to use (it even has a X interface).

dumpRam - We're providing a simple function for pretty-printing a portion of main_memory (part of the JOS labs). Its there for your use.If you think it causes problems with your code, don't use it.


Source Code Style Guidelines:

All lab source code must adhere to the following style guidelines or points will be deducted. Please feel free to see any of the TAs if you have questions or are unsure your source code is conforming properly.