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 in this tab specify how MemoryScape should display this information. For example, you can choose 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.
In this figure, notice that bytes are displayed using the same color as in the selected block at the top of the figure.
• Orange indicates a corrupted guard block.
• Dark green indicates an allocated data block
• Light green indicates an uncorrupted guard block.
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 in the corrupted guard block has a value of 0x41. All other values are 0x77.
Notice also that 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 the cause of the problem.