BoundsChecker

BoundsChecker
Developer(s) Micro Focus
Stable release 11.3 / July 2015
Operating system Windows
Type Profiler / Memory debugger
License Proprietary software
Website

BoundsChecker is a memory checking and API call validation tool used for C++ software development with Microsoft Visual C++. It was created by Nu-Mega Technologies in the early 1990s. When Nu-Mega was purchased by Compuware in 1997, BoundsChecker became part of a larger tool suite, DevPartner Studio. Micro Focus purchased the product line from Compuware in 2009.[1] Comparable tools include Purify, Insure++ and Valgrind.

BoundsChecker may be run in two distinct modes: ActiveCheck, which will work against any application as is, or FinalCheck, which makes use of instrumentation added to the application when it is built.

ActiveCheck performs a less intrusive analysis and monitors all calls by the application to the C Runtime Library, Windows API and calls to COM objects. By monitoring memory allocations and releases, it can detect memory leaks and overruns. Monitoring API and COM calls enables ActiveCheck to check parameters, returns and exceptions and report exceptions when they occur. Thread deadlocks can also be detected by monitoring of the synchronization objects and calls giving actual and potential deadlock detection.

FinalCheck requires an instrumented build and gives a much deeper but more intrusive analysis. It provides all of the detection features of ActiveCheck plus the ability to detect buffer overflows (read and write) and uninitialized memory accesses. It monitors every scope change, and tracks pointers referencing memory objects.

General Functionality

Leak Detection

API Call Validation

API calls are monitored, their input parameters verified before the function calls are actually performed, warning of possible problems. The API return codes are also monitored, and error codes are logged. Such validation is limited to such APIs as are known to BoundsChecker, currently several thousand in number. If Memory Tracking is enabled, API Call Validation can make use of the information gathered for more precise validation of memory pointers.

Memory Overrun Detection

When both memory tracking and API validation are enabled, it becomes possible to detect many kinds of array and buffer overrun conditions. Compiler instrumentation enhances this ability. This is the feature for which the product was originally named.

API Call Logging

API, COM method and .NET Interop function calls can be logged in detail, noting the call parameter values and the resulting return values. This feature is limited in value, as non-trivial applications often result in the session log quickly becoming too large.

.NET Analysis

A report can be generated analyzing .NET Interop, garbage collection and finalizer activity over the life of the process under test.

Deadlock Analysis

Certain kinds of deadly embraces and other such lockups can be detected.

Compatibility

The current version (11.3.0) of BoundsChecker supports 32-bit and 64-bit native applications on Windows XP through Windows 10. MS-DOS, 16-bit Windows and Windows 2000 applications are no longer supported. Support for .NET or mixed mode (combined .NET and native) applications is relatively limited, and restricted to X86 (32-bit) applications. As part of DevPartner Studio, the product integrates with Visual Studio 2005 SP1, 2008 SP1, 2010 SP1, 2012 Update 4, 2013 Update 4 and 2015.[2]

As of July 2015, the .NET Analysis, .NET Call Reporting and Deadlock Analysis features are not yet supported in X64 applications.

Criticisms

Version History

See also

References

This article is issued from Wikipedia - version of the Monday, February 01, 2016. The text is available under the Creative Commons Attribution/Share Alike but additional terms may apply for the media files.