Release 1.5, patchlevel 0 (7/4/2001)
Summary
This release of CodeSurfer introduces a new C front end, and many other major
enhancements to the system. There are too many bug fixes and other minor
enhancements to list.
Major New features
- New C front end
CodeSurfer now uses a completely new C front end, based on the Edison Design
Group (EDG) front end for C. This offers much more complete and correct
coverage of the C language than the old front end, including support for non-standard
language features.
- Stratification
CodeSurfer now allows certain build phases to be selectively turned off. This
allows users who are only interested in the lightweight representations to avoid
paying the price for building the more advanced representations. The user can
choose to turn off GMOD
analysis, control
dependence, and data
dependence.
- Better syntax coloring
CodeSurfer now supports much better syntax coloring in file viewers.
Parts of the file that have been excluded because of the preprocessor are now
colored differently. See the File
Viewer section for more details.
- Better queries
The query mechanism for CodeSurfer has been enhanced to allow the user to express
queries both in terms of both variables, and variables that are involved at
a set of program points. The section on Query
Input has full details.
- Include file browsing
CodeSurfer now supports browsing of dependences to and within include files,
as described in the Include
File Instances
- New toolbar
The project viewer now sports a new toolbar, which can be floating or attached
to all other viewers. See the section on the Toolbar.
- Web browser integration
The help system is now completely integrated with the web browser.
All windows that have a Help button now take the user directly to the appropriate
section in the manual. For more, see the Help
section.
- Structure field pointer analysis
The pointer analysis algorithm
can now take structure fields into account, so the points-to graph can be computed
much more precisely than before.
- Better slicing for programs with jumps and switch statements
The slicing and predecessor operations have been improved to give more precise
answers for goto and switch statements.
- Scripting is now licensed separately
A separate license is now needed in order to use scripting.
All script source files are now encrypted by default.
- Abstract Syntax Trees
The display of vertices in the project viewer and in the property sheets is
now generated from the fragment of the abstract syntax tree that contributed
to the vertex. This means the display of these vertices is much more precise
and less ambiguous. A Scheme interface to these ASTs
is provided.