Below is information about and links to (in alphabetical
order) some tools/software that make a code maintainer's job (and a developer's job too!)
easier. All software mentioned support the C programming language and may support other
languages too. Note that free stuff is usually GPL-ed and that
evaluation versions may have incomplete functionality or may be time-limited.
Please follow licensing restrictions of software
that you download. All standard disclaimers apply -- you use all downloaded software at
your own risk. I have not used all the software, nor do I recommend anything in particular
for your purposes. I strongly do recommend scanning the downloaded software for viruses.
(Software prefixed by an asterix '*' are heavy-weight
commercial products. These products come with good commercial support and are usually
expensive (some may have discounted programs for non-commercial use).)
CBrowser: (Free -
Chris Felaco, Unix, C, Uses Tcl/Tk,
Requires Cscope generated database) Graphical source
code browser/searching tool. This is a neat and simple-to-use tool that uses the databases
created by Cscope to present the same information in a GUI. This
tool is good if you are simply going through some source code. Since it uses Tcl/Tk and works on a Cscope database, it can potentially work on any platform (including
Windows NT/95/98) that Tcl/Tk
works for. Download
source (since it's written in Tcl, you don't need to compile) from here; you will need
to also have Tcl/Tk
installed on your machine.
*CC-Rider:
(Commercial - Western
Wares, OS/2/Windows, C/C++) Source code comprehension and documentation
software. Includes support for source browsing (visual and text), generating documentation
(HTML, RTF, Windows Help format, ASCII), generating wall-size tree charts and graphic file
exports of all tree charts. Also has a API interface to the symbol database generated by
it's analyzer module so that you can write custom software for your purposes. A number of
compilers and editors are supported. Download trial version from here.
C Exploration Tools: (Shareware
- Juergen Mueller,
Windows, C) Command-line based set of tools for examining functions and the
structure of C source code. You can scan and analyze source code to print out (in HTML or
RTF) the function call hierarchy and data structure relations. Download
shareware version from here.
Cflow: (Commercial
usually - different vendors, Unix, C/C++/Lex/Yacc) This program analyzes
C/C++/Lex/Yacc/Assembler source/object files and writes a chart of their external function
references as a suitably indented text-only diagram. All versions do not support C++.
Requires the compiler or the lex/yacc programs as the source is preprocessed before
analysis for symbols.
*CodeSurfer:
(Commercial - GrammaTech, Inc.,
Solaris, C) C Program analysis and comprehension software. Has a dependence
analyzer that lets you analyze dependency among the various parts of your code. Supports
pointer analysis, web-like navigation of code and integration with Emacs. Has a scripting
language for customisation. Download evaluation version from here.
Cscope: (Open Source, Unix,
C/Lex/Yacc) Cscope is a popular tool that goes through your source code and
creates a symbol database. Using this database, cscope lets you quickly search for and
jump to definitions, declarations, usages of functions, variables and other symbols. Other
nice things are possible too. Integrates easily with the Vi editor. Download sources here.
Ctags: (Commercial
- different vendors, Unix, C) This utility generates what is known as a tag
file after looking through your sources. The tag file is an index of objects in your
sources and when used with an editor that supports it, lets you quickly locate objects
(function definitions, variable definitions, etc). Usually Vi and Vi clones
(Nvi/Vim/Elvis/Steve/Xvi), NEdit, Emacs/Xemacs, etc support the use of tags. Emacs
supports it's own style of tags file and comes with it's own utility to generate tags.
Should come with the C compiler toolkit on your Unix platform.
CXref: (Free - Andrew M. Bishop,
Unix, C, Source) Generates HTML or LaTeX documentation from C source (ANSI,
K&R, others). Requires code be commented in appropriate format. Cross-references are
generated from the source. Download the sources
from here.
*Imagix 4D:
(Commercial - Imagix
Corporation, Unix/Windows, C/C++) Reverse engineering and program
comprehension tool. Provides facilities for graphical views of source code flows and
relationships between objects. Integrated source code browsing is supported and the
ability to generate documents in ASCII, HTML or RTF. Download trial version
from here.
*SNiFF+: (Commercial
- TakeFive Software,
Unix/Windows, C/C++/Java) This is a comprehensive source code engineering
tool/environment useful during all phases of software development. Supports code analysis
and browsing, project maintenance, editing, documenting, managing builds, debugging and
integrating other tools. Can support other languages including Tcl, Ada, Python, Fortran,
Cobol, VHDL, Assembler, etc. See web-page for more details and other hosts of features. Download trial version from
here.
Source Browser: (Free - Adam Moravanszky,
Windows, C) Simple program that displays the function call relationships in
C programs. Does not require a compiler or other tools and will simply analyse a bunch of
C source files. Download the
software from here.
*Source Explorer: (Commercial
- Intland, Unix/Windows,
C/C++/Java) Source Explorer is a complete source code development
environment implemented entirely in Java. Uses a client and server approach with project
databases maintained at the server and the GUI environment provided at the Java based
client (which can also be run as an applet from within your favorite browser). The GUI
client provides extensive cross referencing support that is useful when reading code and
also when actively developing code. The usual source code comprehension features like call
tree, include tree, class browser, symbol browser, text search features, etc are
supported. Check out
Intland's product page for a detailed technical overview.Download
evaluation version from here.
*Source Insight: (Commercial
- Source Dynamics, Windows,
C/C++/Java) Source Insight is primarily a source code editor that has been
enhanced for C/C++ and Java support. As you edit code, Source Insight generates and
maintains a database of symbolic information and presents useful contextual information
like lists of defines, symbols, enumerations, function, etc. in separate windows and
allows you sort control over them and the facility to quickly jump to the locations of
these defines/symbols/functions/etc. Has all features of a full fledged editor including
syntax highlighting and extensive customization. Can work with existing code that you have
never used Source Insight on before. Download trial version from here.
*Source Navigator: (Commercial
- Cygnus Solutions, Unix/Windows,
C/C++/Java/Tcl/Fortran/Cobol/Assembly) Source code comprehension and
documentation tool. This is another tool that you can point at any set of C/C++ or other
supported language source code to generate a program database using which the tool allows
enhanced source browsing, showing relationships (call/callby/include/includeby/etc.)
between the various parts of the program, class browing and even editing using the built
in editor. Supports version control software and is useful even during the development
phase. Download
trial version here.
*Understand for C++:
(Commerical - Scientific
Toolworks, Inc., Unix/Windows, C/C++) This is a source code
comprehension and documentation tool. Point this software to any set of C/C++ source code
and it will analyse the code and provide support for showing call hierarchies, call/callby
trees and include/includedby trees. Excellent call graphs are drawn with support to
control the way the graphs are drawn. Support for generating HTML documentation, string
search using regular expressions and source code cross-referencing, a class-browser and
integration with a number of editors/IDE's round out this tool. Download trial version
from here.
Visual Source Code Explorer (VSCE): (Commercial
- Tony Lee, Windows, C/C++)
Visual Source Code Explorer is a simple Windows (95/NT) based source code cross reference
and documentation tool for C/C++. Allows you to associate documentation with the source
code, presents a hierarchical view of the source code, allows hyper-browsing of the source
and quick searching of symbols. Download trial version from here.
Xref-Speller: (Commercial - Xref-Speller, Unix/Windows, C/Java,
Source/Binary) Xref-Speller is a editor macro package that integrates with
existing editors/IDE's and permits you to inspect your sources in the same way you browse
hypertext files. You can find symbol declaration/definitions and usages and browse forward
and backward through them. Supports name completion of function/global/etc. names that you
key in as you key them in. Also supports generating HTML-ised versions of C or Java source
code with syntax and color formatting. Editors supported included Emacs/XEmacs, Vedit and
KAWA. Download evaluation
versions from here.
The latest version of this site has moved to it's own domain at http://www.grok2.com/. Please update your bookmarks and
links. Click here to go to the new site.
The latest version of this site has moved to it's own
domain at http://www.grok2.com/. Please update your
bookmarks and links. Click here to go to the new site.