If you have a TotalView Team license and a recent release of TotalView you can use MemoryScape in several different modes of operation:

1. Attached to a program you are already debugging with TotalView:

You can Start TotalView then enable Memory Debugging from either the startup parameters dialog or the Debug menu option. Then once you've done that you can start your application and at any time you can select Debug->Open MemoryScape and the MemoryScape window will open up focused on your program.

This will allow you to do all the checks and analysis that MemoryScape provides, plus there are a couple of features and capabilities that you can only access when you use TotalView and MemoryScape together:

* Pointer Annotation -- When you use TotalView and MemoryScape you will find that pointers in the Variable Window are annotated with information about the allocation status of the block that the pointer points towards.

* Precise Control -- When using MemoryScape alone you can start and stop your application but with TotalView you have much more precise control .. you can set breakpoints and watchpoints and stop the application at known points. This can allow for much more nuanced analysis of memory usage patterns.

In any case this is probably the most familiar mode.

2. You can use MemoryScape standalone.

If you want to use MemoryScape without starting TotalView first and have installed the separate MemoryScape tar bundle you can do so.

Rather than starting TotalView issue the command memscape and just the MemoryScape interface will come up. You can do all the normal MemoryScape things like leak detection.

Note: When you issue the memscape command MemoryScape will look first for a MemoryScape license key and then only if it does not find one will it look further for a TotalView license key.

3. You can start from MemoryScape and then launch TotalView.

Issue the command memscape and begin memory debugging. If at any point you want to launch TotalView to get a more detailed view of the program you are debugging then you can click the bug-in-the-cross-hairs icon on the toolbar and if you have a license for TotalView you'll get a TotalView process window showing the program you are memory debugging. You can switch back and forth from TotalView to MemoryScape just as if you'd started with TotalView.

Note: If you start this way TotalView will initially look for a MemoryScape license key and only go for a TotalView license if there are no MemoryScape licenses key available. At the point when you ask to start TotalView if you have a TotalView license key already no new license key will be requested. If you have been running on a MemoryScape license key then MemoryScape will look for a TotalView license key and if it can acquire that key it will release the MemoryScape license key.

4. Finally you can use memscript to do unattended memory debugging.

Use the memscript command and you can script up a specific memory debugging session that is suitable for submitting into a batch job or being easily integrated into a scripted or automated testing framework.

Note: When you issue the memscript command MemoryScape will look first for a MemoryScape license key and then only if it does not find one will it look further for a TotalView license key.

Happy debugging!

Chris Gottbrath