Debugging Memory Problems with MemoryScape : Chapter 1 Locating Memory Problems : Batch Scripting and Using the CLI : dheap : Detecting Leaks: dheap –leaks

Detecting Leaks: dheap –leaks
The dheap –leaks command locates memory blocks that your program allocated and are no longer refe enced. It then displays a report that describes these blocks; for example:
d1.<> dheap -leaks
process 1 (32188): total count 9, total bytes 450
* leak 1 -- total count 9 (100.00%), total bytes 450 (100%)
-- smallest / largest / average leak: 10 / 90 / 50
: malloc PC=0x40021739 [/.../malloc_wrappers_dlopn.c]
: main PC=0x0804851e [/.../local_leak.cxx]
: __libc_start_main PC=0x40055647 [/lib/i686/libc.so.6]
: _start PC=0x080483f1 [/.../local_leak]
If you use the –check_interior option, MemoryScape considers a block as being referenced if a pointer exists to memory inside the block.
In addition to providing backtrace information, the CLI:
*
Consolidates leaks made by one program statement into one leak report. For example, leak 1 has nine instances.
*
Reports the amount of memory consumed for a group of leaks. It also tells you what percentage of leaked memory this one group of memory is using.
*
You might want to paint a memory block when it is deallocated so that you can recognize that the data pointed to is out-of-date. Tagging the block so that you can be notified when it is deallocated is another way to locate the source of problems.

Rogue Wave Software, Inc.
Voice: (303) 473-9118
rwonlinedocs@roguewave.com