Guarding Allocated Memory
When your program allocates a memory block, no data should be written outside the block. For instance, an allocation of 16 bytes could not accommodate 32 bytes of information, as that data would write over the information in the next block, corrupting it.
To quickly identify instances in which your program may be incorrectly writing data either before or after a block, use guard blocks. Guard blocks are small blocks of additional memory created just before and after an allocated block. At initialization, TotalView writes a bit pattern into these guard blocks so you can quickly see if they are overwritten or corrupted via a memory event report or notification.