Source Code Comprehension Tools
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.
CIAO: (Non-commercial/Evaluation - ATT Research, Solaris/Sun4/SGI, C/C++/Java/HTML/Others) A graphical navigator for software and document repositories. Non-commercial/Evaluation download is here. CodeWalker is the commercial product (see below). Source available here (probably needs X, non-commercial/evaluation) .
*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.
Site copyright of domain owner. All rights reserved.