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 is the sort of thing the author wishes he had available to him
when he first came to UCR but he didn't, and
- It's a project the author was assigned to do in order to complete the
requirements for one of his classes.
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.
- gdb: C/C++ interactive debugger
- ddd: Graphical X interface to gdb
- xxgdb: Graphical X interface to gdb
- STL: Standard Template Library
- efence: ElectricFence (dynamic memory debugger)
- lclint: A better lint (static C program
analyzer)
- gprof: Gnu Profiler: analyzes prog. performance
- rcs: Revision control system
- ctags/etags: Tag file generator for vi/emacs
- autoconf: Automatic system
configuration for porting software packages
- Written by:
- Constantine Samaras (aka: "C.T."),
(Check-out my
home page!)
- for:
- CS-260: Software Engineering,
FALL '96, Professor Frank Vahid
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.