The Memory Contents tab directly displays the information in memory. See
Task 11: “Viewing Corrupted Memory”. This information is presented in a manner similar to such shell tools as
od. Controls within this tab let specify how MemoryScape should display this information. For example, some of your choices are hexadecimal, octal, and character. (The default is hexadecimal) You can also change the number of bytes shown. The right area displays an ASCII representation of this information. The
Bytes area lets you specify how many bytes are contained within each cell.
Now look at the data. When MemoryScape created a pre guard block, it used its default setting, which set bytes to
0x77. However, the eighth byte within the corrupted guard block contains a value of
0x41. All other values contain
0x77.
Notice also the boundary between the data in the corrupted block and the following block has two guard blocks: the following guard from one data allocation and the preceding guard of a second.
When the program that generated this program was run, guard block notification was set. This insured that execution was halted when the memory block containing the guard block was deallocated. This is a good starting point for trying to locate what caused the problem.