TCAT C/C++ for Windows Ver. 3.2
© Copyright 1999-2006 by Software Research, Inc.
These Release Notes describe changes and additions to
TCAT C/C++, Ver. 3.2.
Download either of two versions of TCAT C/C++:
version, which does not require a license key.
version, which requires a license key.
This release includes these new features:
- New GUI.
This release includes a completely rebuilt user interface
that simplifies user activities.
- Workspace Model.
This version uses a workspace model, somewhat similar to MS Visual Studio,
to maintain your projects.
Each project contains a set of files that you wish
to instrument or compile into the test build.
- Settings Simplified.
Customizing instrumentor and compiler settings has been made simpler.
And, instrumentor and compiler settings can now be retained for each project.
- Mouse Access to Functionality.
Most of the product functionality are accessible with left and right mouse
clicks to any of the objects in the project workspace.
- File Management Simplified.
It is now easier to manage source files.
For example, you can now easily
add new files to instrument in the current project,
remove files, or
selectively instrument/compile source files.
The current releases of TCAT C/C++ Ver. 3.2 and TCAT/Java Ver. 3.2 include the
All Paths Generator (APG).
APG's aim is to give C-C++ and Java programmers instant information about the
relative structural complexity of individual functions and modules/objects.
The new APG feature is accessed from buttons on the
TCAT/C-C++ or TCAT/Java Digraph toolbar.
The data generated always relates to the current function or module and
gives the following information:
- Total number of segments (edges).
- Total number of nodes (fixed internal states).
- The cyclomatic complexity of the object.
- The total number of 1-trip paths in the program.
- The shortest and longest paths in the program.
- The highest level of iteration in the program.
- The number of basis paths (those with no iteration).
- The number of iterative paths based on the depth of repetition.
In addition, the APG outputs include a complete enumeration of
all of the equivalence classes of program flow, up to a repetition
count within the looping structure.
Studies have shown a high correlation between the APG-generated total path
count and the discovery rate of errors for that particular module.
Click here for more
information on APG.
DEMO Version Characteristics
The DEMO version does not require a separate license key; it has a key that
is valid for a period up to 10 days [it is refreshed regularly].
The DEMO version has these restrictions:
- Only the first 5 modules [functions] in any build are processed.
- Coverage reports apply only to the modules that are processed.
- Digraphs are available only on modules that are processed.
- Calltree diagrams are available only on modules that are processed.
Two complete examples, Fib.cpp and Scribble, are included to fully illustrate product operation.
Runtime Buffering Options
We supply versions of runtmdll_?.dll
that are buffered with various buffer lengths.
You have to copy the correct file into your copy
of runtmdll.dll to get the right buffering effect.
The default version is runtmdll_inf.dll.
The supplied versions buffer at the level of 1, 10, 100, 1000, 10,000, 100,000 and infinite buffering.
Buffering is accomplished based on the total number of hits made of segments and/or call-pairs.
Selecting the Correct Version of the TCAT C/C++ Runtime
The various versions of runtime that are available are named as follows:
| Hits per Buffer || Class Name
| 1 || runtmdll_1.dll
| 10 || runtmdll_10.dll
| 100 || runtmdll_100.dll
| 1000 || runtmdll_1000.dll
| 10,000 || runtmdll_10000.dll
| 100,000 || runtmdll_100000.dll
| Infinite || runtmdll_inf.dll
These runtime modules are installed into the $SR/program directory,
where $SR is your TCAT C/C++ installation directory.
Restrictions and Limitations
TCAT C/C++ should process virtually any compilable C or C++ program without difficulty.
However, there are some restrictions that users should be aware of.
- Call pairs that arise from a function call made within a function
call are not instrumented and are not included in the call pair
tree. There are other call pair restrictions that are currently being
documented and will be posted shortly.
- Operator overriding is not instrumented. Examples are new, delete, ++, +=, etc.
- exit statements are not recognized as callpairs.
- Functions containing goto statements produce incorrect digraphs.
- Recursive functions, when only calling itself, will not render correctly in the call tree diagrams.
- Instrumenting C++ code under the ANSI C model will not work correctly.
- Forcing ANSI C to compile as C++ will not work.
This link http://www.soft.com/Support/ReleaseNotes/tcatC32readme.html
describes how to setup and use TCAT C/C++. This document also contains step-by-step instructions to instrument the Scribble example found in MSDN.
Release Notes for TCAT C/C++, Ver. 3.1