Release 1.4, patchlevel 0 (10/26/2000)
Platforms
This release runs on the following platforms:
- Sparc Solaris versions 2.5.1 and above
- Windows 98, Windows NT and Windows 2000
Summary
This release of CodeSurfer introduces several major new features, some improvements
to the pointer analysis algorithms, and some bugfixes.
New features
- Library models
The models for the C and Math libraries have been reworked substantially to
model the actual libraries much more closely. See the Standard
Libraries section for full details.
- Building projects
CodeSurfer now has much better compatibility with existing Makefiles. It should
now allow use of most existing Makefiles to build the dependence graph. Some
restrictions on the build process have been removed. For example, a source file
can contribute to a build multiple times. The mechanisms for building the dependence
graphs for programs has undergone a complete overhaul in order to make the build
process match the semantics of the loader more precisely. See the csurf
manual page for full details.
- Backwards CFG edges
An option for building
control-flow graph edges in the backwards direction has now been added.
See the documentation on the core API for PDG_VERTEX
for details on how to access these edges.
- Better support for the CL compiler model
Support for the Microsoft
Visual C++ compiler model CL has been greatly improved. The model
now understands the same set of command line flags that the compiler itself
understands.
- Pointer analysis algorithms
The pointer analysis algorithms
have been renamed, and a new algorithm has been introduced. The new algorithm,
based on the Steensgaard pointer analysis algorithm, is named s
and has almost linear performance, but weaker precision than the Andersen pointer
analysis algorithm (now named a). However, due to licensing
restrictions this algorithm is not available by default. Please contact GrammaTech
to arrange access.
- Pointer analysis precision improvements
The precision of the pointer analysis algorithms has been improved slightly.
Functions that are pointed to by function-pointer variables no longer point
to themselves.
Minor changes and bug fixes
- Bug fixes
- A problem where the predecessor and successor commands would give erroneous
results has been corrected.
- A bug that caused crashes computing summary edges has been fixed.
- A problem on the Win32 platforms where CodeSurfer would prevent users
from editing files that were being viewed in CodeSurfer has been fixed.
- Minor changes
- The STk files that implement the CodeSurfer user interface have been
completely reorganized. Users who have scripts that relied on any
of the functions defined in any STk file may have to revise those scripts.
- Functions that have no explicit return statement now have a new
vertex that represents the implicit return. This is represented in
property sheets and the project viewer as the closing brace of the function.
- Some core API functions have had their return values changed slightly
to be more consistent.