 |
Static Analysis for C and C++
Static code analysis, data flow static analysis, code metrics analysis
|
- Enterprise-grade solution—market leader since 1997
- Preconfigured for FDA, MISRA, JSF, ISO 26262, and other safety-critical and embedded development standards
- Exposes reliability, security, performance & concurrency problems
- Integrates with Eclipse, Visual Studio, Wind River, ARM, TI, QNX & more
- Includes code review, unit testing, coverage analysis & runtime error detection as well as static analysis
- Broad static analysis support, including:
- C/C++ | Java |
.NET | FDA |
safety-critical |
security
|
|
|
|
 |
|
Parasoft's core static analysis capability provides the industry's most extensive support for C and C++ development.
The following are selected examples of items in each category. These are not comprehensive list. If you have questions about an item that is not listed,
please contact Parasoft to see if support is available
Defects*
- Exceptions
- Initialization
- Logical errors
- Performance degradation
- Portability problems
- Resource & memory leaks
- Security vulnerabilities
- Threads & synchronization
Templates*
- Effective C++ (Meyers)
- Effective STL (Meyers)
- Ellemtel
- FDA
- HIS Source Code Metrics
- ISO 26262
- Joint Strike Fighter
- MISRA C, C 2004, C++ 2008
- PCI Data Security
- Sutter-Alexandrescu
- The Power of Ten for Safety Critical
Compilers*
- ARM RVCT, ADS
- GNU GCC
- Green Hills C/C++
- IAR C/C++ for ARM
- Keil RVCT for uVision, C51
- Microsoft Visual C++
- QNX GCC
- Renesas SuperH C/C++
- Sun C/C++
- TI TMS320C2x, TMS320C6x C/C++
- Wind River Diab, GCC
IDEs*
- Eclipse
- Microsoft Visual Studio
- ARM RVDS
- QNX Momentics
- TI Code Composer Studio
- Wind River Workbench
Operating Systems
- Windows
- Linux
- Solaris
- AIX
Build systems
- Make-based (GNU, nmake, CMake, etc.)
- Eclipse CDT
- Microsoft Visual Studio
- Green Hills MULTI
- IAR Embedded Workbench
- RealView MDK-ARM (uVision)
- Renesas HEW
- Wind River Tornado
Source Control
- AccuRev
- CVS
- ClearCase
- Perforce
- Serena Dimensions
- StarTeam
- Subversion
- Synergy/CM
- Visual Source Safe
Static Code Analysis Rules*
- All member variables should be initialized in constructor
- Avoid unused local variables
- Declare copy constructor for classes with dynamically allocated memory
- Do not call delete on non-pointers
- Do not invoke malloc/realloc for objects having constructors
- Initialize all pointer variables
- Initialize static class members
- Make destructors virtual in base classes
- Never return a reference to a local object
- Properly terminate character strings
- Throw by value, catch by reference
Data Flow Rules*
- Avoid accessing arrays out of bounds
- Avoid buffer overflow
- Avoid conditions that evaluate to the same value
- Avoid division by zero
- Avoid null pointer dereferencing
- Avoid use before initialization
- Do not use blocking functions while holding a lock
- Do not abandon unreleased locks
- Ensure resources are freed
Metrics*
- Cyclomatic Complexity
- Essential Complexity
- Class Inheritance Level
* These are samples—not a comprehensive list. To see if a specific need is supported, contact Parasoft.
|
|
|
|
 |