PDA

View Full Version : Comparison Between TotalView Memory Debugger and MemoryScape



Steve-TotalView
06-06-2007, 11:38 AM
MemoryScape is based on the same memory debugging technology as used to
provide memory debugging in the TotalView Debugger (TVD). Both
MemoryScape and TVD show you many of the same heap memory reports. The
primary differences between the TotalView Memory Debugger and
MemoryScape are related directly to the user interface. The choice of
which one to use should be based largely upon the specific needs of the
user.

The TotalView Debugger integrates memory debugging with source code
debugging. The TotalView Debugger allows examination of variables in
data structures and annotations on pointers. The pointer annotation
permits the user to see if a pointer is pointing into allocated or
unallocated heap locations. It also allows you to run your program from
point a to point b and view how the heap has changed. MemoryScape does
not support a variable data view or process control (beyond
halt/continue) so this kind of analysis is not possible.

MemoryScape has a non-graphical mode designed to be easily integrated
into an automated testing framework. If an application simply requires
testing (for memory leaks or heap bound violations for example)
MemoryScape is well-suited for that purpose.

It is also possible to do the same series of tests with TotalView (and
more complex ones as well, taking advantage of things like breakpoints
and the ability to interrogate variable data) with TotalView by writing
a custom CLI script. In this case, the functionality is largely shared
between the TotalView Debugger and MemoryScape, but the approach is
different.

It is worth noting that for teams of developers, having TVD and
MemoryScape could be advantageous. Usage is close enough that team
members who have developed expertise with one tool will have a quick
learning curve for the other. TVD and MemoryScape both produce and
consume the same format of memory debug files -- so users can file bug
reports with one tool and include a memory debug file that can be picked
up and used seamlessly by other team members who prefer to use the
other. A typical scenario may be that a tester finds a memory leak using
MemoryScape and provides the memory debug file to the developer who then
uses TVD to help find why the memory leaks exists. MemoryScape helps you
identify if there is a problem, TVD helps someone who is actually going
to fix the problem by providing source level debugging integrated with
the memory debugging.