BoundsChecker
Encyclopedia
BoundsChecker is a memory checking
Memory debugger
A memory debugger is a programming tool for finding memory leaks and buffer overflows. These are due to bugs related to the allocation and deallocation of dynamic memory. Programs written in languages that have garbage collection, such as managed code, might also need memory debuggers, e.g...

 and API call validation tool used for C++
C++
C++ is a statically typed, free-form, multi-paradigm, compiled, general-purpose programming language. It is regarded as an intermediate-level language, as it comprises a combination of both high-level and low-level language features. It was developed by Bjarne Stroustrup starting in 1979 at Bell...

 software development with Microsoft Visual C++. It was created by Nu-Mega Technologies
Nu-Mega Technologies
NuMega Technologies was a software company founded in 1987 by Frank Grossman and Jim Moskun in Nashua, New Hampshire, USA.The company developed Kernel mode debugger, now SoftICE, for DOS and the Windows NT family....

 in the early 1990s. When Nu-Mega was purchased by Compuware
Compuware
Compuware Corporation is a software company with products aimed at the information technology departments of large businesses. The company's services also include testing, development, professional services automation, project and portfolio management, cloud-based collaboration and performance...

 in 1997, BoundsChecker became part of a larger tool suite, DevPartner Studio
DevPartner
DevPartner is a set of software development and testing tools developed by Nu-Mega Technologies, acquired by Compuware Corporation in 1997, which on June 1, 2009 sold it to Micro Focus International...

. Micro Focus purchased the product line from Compuware in 2009. Comparable tools include Purify, Insure++
Insure++
Insure++ is a memory debugger computer program, used by software developers to detect various errors in programs written in C and C++. It is made by Parasoft, and is functionally similar to other memory debuggers, such as Purify and Valgrind.-Overview:...

 and Valgrind
Valgrind
Valgrind is a GPL licensed programming tool for memory debugging, memory leak detection, and profiling. The name valgrind comes from the main entrance to Valhalla in Norse mythology....

.

BoundsChecker can be run in two modes: ActiveCheck, which does not instrument
Instrumentation (computer programming)
In context of computer programming, instrumentation refers to an ability to monitor or measure the level of a product's performance, to diagnose errors and to write trace information. Programmers implement instrumentation in the form of code instructions that monitor specific components in a system...

 the application, and FinalCheck, which does.

ActiveCheck performs a less intrusive analysis and monitors all calls
System call
In computing, a system call is how a program requests a service from an operating system's kernel. This may include hardware related services , creating and executing new processes, and communicating with integral kernel services...

 by the application to the C Runtime Library, Windows API
Windows API
The Windows API, informally WinAPI, is Microsoft's core set of application programming interfaces available in the Microsoft Windows operating systems. It was formerly called the Win32 API; however, the name "Windows API" more accurately reflects its roots in 16-bit Windows and its support on...

 and calls to COM objects. By monitoring memory allocations and releases
Memory management
Memory management is the act of managing computer memory. The essential requirement of memory management is to provide ways to dynamically allocate portions of memory to programs at their request, and freeing it for reuse when no longer needed. This is critical to the computer system.Several...

, 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
Thread (computer science)
In computer science, a thread of execution is the smallest unit of processing that can be scheduled by an operating system. The implementation of threads and processes differs from one operating system to another, but in most cases, a thread is contained inside a process...

 deadlock
Deadlock
A deadlock is a situation where in two or more competing actions are each waiting for the other to finish, and thus neither ever does. It is often seen in a paradox like the "chicken or the egg"...

s 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 overflow
Buffer overflow
In computer security and programming, a buffer overflow, or buffer overrun, is an anomaly where a program, while writing data to a buffer, overruns the buffer's boundary and overwrites adjacent memory. This is a special case of violation of memory safety....

s (read and write) and uninitialized memory accesses. It monitors every scope change, pointer and memory usage.

Compatibility

The current version (10.5.2) of BoundsChecker supports 32-bit and 64-bit native applications on Windows 2000 through Windows 7 Service Pack 1. MS-DOS and 16-bit Windows applications are no longer supported. Support for .NET or mixed mode (combined .NET and native) applications is relatively limited. As part of DevPartner Studio
DevPartner
DevPartner is a set of software development and testing tools developed by Nu-Mega Technologies, acquired by Compuware Corporation in 1997, which on June 1, 2009 sold it to Micro Focus International...

, the product integrates with Visual Studio 2005 SP1, 2008 SP1 and 2010 SP1.

Version History

  • 10.5.2 - Aug 2011 - Updated Japanese translation. X64 support now available to Japanese customers.
  • 10.5.1 - May 2011 - Supports Windows 7 SP1, Visual Studio 2010 SP1 and X64 applications on Windows XP SP2 X64.
  • 10.5 - Feb 2011 - Supports X64 applications on Windows Vista X64 and later.
  • 10.0 - Apr 2010 - Supports Visual Studio 2010.
  • 9.1 - Oct 2009 - Supports Windows 7.
  • 9.0 - Sep 2008 - Supports Visual Studios 2005 & 2008.
  • 8.2 - May 2007 - Last version with full support for Visual Studio 6.0 and Visual Studio .NET 2003.
  • 5.0 - Mar 1997
  • 4.0 - 1996 - Introduced API Validation feature.
  • 2.0 for DOS - Mar 1991
The source of this article is wikipedia, the free encyclopedia.  The text of this article is licensed under the GFDL.
 
x
OK