TotalView can identify pointers that do not point to allocated heap memory.
The following example demonstrates this for two pointer variables, addr
and misaddr.

Set up the Memory Tracker by selecting Tools > Enable Memory Debugging.
Tools > Stop on Memory Errors should automatically be set. If Stop on
Memory Errors is not set, please set it.

At a breakpoint after memory allocation, dive on the addr and misaddr variables.

Notice that the values now contain (Allocated) and (Allocated Interior). Keep
these variable windows up.

Continue program execution to a breakpoint after the memory has been freed
by again selecting the Go command from the Toolbar. The addr and
misaddr variable value information now contains (Dangling) and (Dangling
Interior).

Memory block painting can be used to cause a program error when the program
references an uninitialized block of heap memory or makes a reference to an already
deallocated heap block. The user specifies the bit patterns to be used for allocated
and deallocated blocks.