BoundsChecker is an indispensable tool for Windows programming. It finds errors that no one else can find (including tons in Microsoft's code!!). Its main focus is on finding memory leaks.
I have used the BoundsChecker tool a little bit. It did a good job of finding routine VisualBasic errors. I haven't used it enough, however, to say whether it's a solution to some of the problems described in ThingsWeHateAboutVbClassic. -- RobertEikel
How does it compare to leak detectors like Purify and ElectricFence???
ElectricFence appears to be a malloc replacement that places each memory block onto a separate page with guard pages on either side to catch overwrites. The trick is to place the memory at the end of the block so writing off the end causes a fault. You can set up read/write faults.
BoundsChecker does not currently do this. (The main reason is that all the guard pages make your program run extremely slowly. Also there is a lot of software out there that thinks writing beyond the end isn't bad.) BoundsChecker catches writing off the end using a technique that warns you of the error but won't cause your application to crash when you touch the block.
Microsoft's VC++ compiler and libraries include tools that help with finding off-the-end errors and memory leaks. There are also new compiler settings in VC7.1 that can help find stack overwrites.
If you need it, get BoundsChecker at: http://www.componentsource.com/products/devpartner-visual-c-boundschecker-suite-visual-studio-named-users/index.html