A description of the differences between ActiveCheck and FinalCheck.



What kind of monitoring does ActiveCheck do in Contrast to FinalCheck?



ActiveCheck™ monitors calls to system DLLs made by your application, whether from the executable, DLLs, 3rd party modules or COM components. ActiveCheck can be used on all applications.

ActiveCheck is always used when BoundsChecker is running.


All threads stalled - Potential Deadlock

Attempt to close handle still in use

Attempt to use deleted CriticalSection

Deadlock detected

Deleting owned CriticalSection

Deleting owned resource

Deleting thread that owns resources

Named/unnamed object checks

Reinitializing CriticalSection

Releasing unowned resource

Releasing resources in wrong order

Reentering CriticalSection


Calls to unmanaged APIs

Finalize method not called

Missing Dispose/Close call

Unmanaged exception caught by CLR

Unhandled exception thrown


Allocation/Deallocation Conflict

Bad Handle

Checks for movable memory

Destroying Process Heap

Implied Free

Memory Leak

Memory Overrun

Pointer Usage Errors

Read Overrun

Outstanding Allocations

Overrun Detected

Write Overrun


Deleted Device Context still contains objects

Invalid Range

Object already selected into a Device Context

Resource Leak


API Failure

COM Method Failure

Flag checking

Format specifier checking

Exception during API/COM Method call

Invalid Parameter

Invalid String

Overlapped copy

Parameter validation


FinalCheck™ instruments your application at compile-time to examine all pointer use by your application. FinalCheck can only be used on C/C code that you can recompile.

FinalCheck is used in addition to ActiveCheck to monitor your application.


Bad Indirect Call

Dangling Pointer Used

Memory Leak leaving scope

Pointer Usage Errors

Pointer range checks

Read Overrun

Read Underrun

Return of local variable

Write Overrun

Write Underrun

Uninitialized Memory Read

Unrelated pointer comparison

Subscript Overrun

Note that in places where there is duplication between the errors found using FinalCheck and ActiveCheck technologies, FinalCheck will allow find the error closer to the source. For example, with FinalCheck, you'll get memory leaks reported when the last pointer to an allocated memory block goes out of scope. With ActiveCheck, you'll get the memory leak reported at the end of the application.

Old KB# 11388
Comment List
Related Discussions