Great Circle 2.1
Until recently, Great Circle was positioned as a garbage-collection utility for C and C++ programmers. It still does that, but Geodesic Systems has found that while most C programmers understand that they need to fix memory leaks (which Great Circle does), they may not understand how garbage collection can help.
Consider a C program with dynamic memory allocations-malloc calls to allocate memory, and free calls to release that memory. Normally if you malloc without a later free, the memory leaks. If you free a block twice, the memory heap becomes corrupt. Once you link it into your program, Great Circle lets you dispense with free calls. Instead, it scavenges memory in the background and periodically releases dead memory blocks-blocks for which no valid pointer is in scope. Great Circle can also report what it's doing.
Effectively, Great Circle acts as both a diagnostic and an immediate cure for memory leaks. Since it can fix memory leaks coming from third-party libraries and DLLs, as well as leaks coming from your own code, it can sometimes prove indispensable. And if you rely on Great Circle from the beginning of a project, instead of constantly trying to match your memory allocations, you can save an enormous amount of programming time.
Great Circle doesn't really compete directly with BoundsChecker-it's more of a complementary tool. It detects only a few out of the thousands of possible problems in Windows programs, while BoundsChecker detects essentially all of them. On the other hand, BoundsChecker does not actually fix anything, while Great Circle almost magically turns a program that leaks like a sieve into something solid and stable without requiring you to change a line of code.