| 
 | 
 
 | 
Next
Previous
 
-  Visual C++ 6.0 Runtime Heap Debugging
 
This only checks for heap corruption (i.e. destructive side-effects
of writing outside the allocations) and even then, it only catches 
writings in the
NO_MANS_LAND_SIZE (default:4 bytes) on either side of the blocks.
The detection of these errors is done whenever the system
calls _CrtCheckMemory(). HeapCheck catches read accesses as well,
at the EXACT place they are made, and in a much larger
block (a page in i386 systems is 4096 bytes).
 
-  BoundsChecker
 
This is a very good debugging tool, capable of catching almost
every bug. However, CPU cycles are used in order to perform 
all these checks, and especially in
instrumentation mode and maximum memory checking,
the program runs really slow (some programs, like protocol stacks,
won't run correctly if they run too slowly). HeapCheck can only 
catch heap-related
errors, but it uses the paging hardware to do the checking.
The net result is that HeapCheck debug versions of programs
run at almost the SAME speed as normal debug versions (you
only get slower allocating and de-allocating functions,
nothing more). 
In other words you can leave it in your project and forget 
about it (it will be automatically removed when you compile a 
Release version). 
 
 
Next
Previous
 |