Software Development Tools at UCR

This document is a list of, and an introduction to the most important software development tools available to students here at UCR. The motive behind the development of this list is two-fold:

This document was created in the Fall quarter of 1996, and it (hopefully) includes most of the tools available at that time. Perhaps in the not-so-distant future someone will think it is worth the effort to update it as new tools become available.

Click on one of the tools below to see a brief description of each, and where to go for more detailed documentation.


Written by:
Constantine Samaras (aka: "C.T."),
(Check-out my home page!)
for:
CS-260: Software Engineering,
FALL '96, Professor Frank Vahid


gdb (Gnu DeBugger)

Description:

gdb is the program debugger available here at UCR. Simply put, a "bug" is an error in a program that causes unintended or unexpected program behavior. A program debugger, as the name implies, is a tool that helps you eliminate bugs from your programs. With gdb, you can follow and control the execution of your program by setting breakpoints, watchpoints, and by stepping through your program one line (or one machine instruction) at a time. You can also view and modify the values of your program's variables and data structures while the program executes.

Documentation:

For complete details, as well as a sample session with gdb, please click here.





DDD (Data Display Debugger)

Description:

ddd is a graphical user interface which works with gdb and other program debuggers. With it, one can do anything that can be done in gdb, but in a more convinient, point-and-click manner. It allows for viewing the internal structure and values of your data structures graphically on screen, and for following and controlling the execution of your programs with the click of a mouse button.

Documentation:

For complete details, please enter: `ddd -manual' at the command line.





XXGDB (X-Windows interface to gdb)

Description:

xxgdb is a graphical user interface which works with gdb. With it, one can do anything that can be done in gdb, but in a more convinient, point-and-click manner. Its very similar to ddd.

Documentation:

For complete details, please enter `man xxgdb' at the command prompt.





STL (Standard Template Library)

Description:

The Standard Template Library is the latest thing to make it into the C++ language standard. It is basically a library that defines various commonly encountered container classes, such as lists, sets, maps, vectors, and so on. It's called a 'template' library because it takes advantage of the language's template mechanism, and it will allow programmers to incorporate these abstract data types in their programs without having to "re-invent the wheel".

Documentation:

For more information on STL, please click here.





ElectricFence (Dynamic memory debugger)

Description:

A library of functions which can be linked in with your program that checks for dynamic memory problems, such as memory leaks, aliasing, dynamic memory corruption, etc.

Documentation:

For complete details, please enter `man libefence' at the command prompt.





Lclint (Static program analyzer)

Description:

Lclint is a static program analyzer for programs written in the C programming language. It can check for certain classes of errors in your program before it is compiled, such as uninitialized variables, ignored function (or expression) return values, as well as many control flow errors, e.g.: a switch statement with some cases missing.

Documentation:

For complete details, please enter `lclint -help' at the command prompt.





GPROF (Gnu Profiler)

Description:

With gprof, one can analyze a program to see how much time is spent in each section of the program during execution. Complete information includes how many times each function was called, how much total execution time was spent in a certain function, and how much execution time was spent per call.

Documentation:

For complete details, please click here.





RCS (Revision Control System)

Description:

Manages multiple source code versions, as well as multi- person projects. Saves succesive versions of a source file incrementally, giving the user the ability to go back to any version created in the past. Also, controls multiple access to a source file, by providing a check-in/check-out mechanism, to restrict access to a certain source file when it's already being modifyied by someone else.

Documentation:

For complete details, please enter `man rcsintro' at the command prompt.





ctags/etags (Tag file generators)

Description:

Ctags/etags generates a tag file for a program being edited in vi/emacs. Basically, ctags/etags will scan through a program file and set all the function definitions, macro definitions, and other key points in a program as tags, which can then be used by the programmer to navigate through the file in his/her editor.

Documentation:

For complete details, please enter `man ctags' at the commmand prompt.





Autoconf (Automatic config. for porting programs)

Description:

Autoconf is a tool that comes in handy when you port a program from one system to another. Because of the so many flavors of UNIX, large software projects will usually not compile without problems on any UNIX system out there. This tool allows you to specify what operating system support a project needs, how to access it on a target system, and where to put the information (usually a Makefile).

Documentation:

For complete details, please click here.