Purify [10] is a debugging tool for C programs with memory access errors. Purify uses ``object code insertion'' to instrument all memory accesses. The approach is similar to StackGuard, in that it does integrity checking of memory, but it does so on each memory access, rather than on each function return. As a result, Purify is both more general and more expensive than StackGuard, imposing a slowdown of 2 to 5 times the execution time of optimized code, making Purify more suitable for debugging software. StackGuard, in contrast, is intended to be left on for production use of the compiled code.