TotalView Technologies products set the standard for the interactive analysis and debugging of serial and parallel codes. TotalView and MemoryScape help technical professionals build and deploy the world's most sophisticated software applications. Software developers and testers with companies in Communications, Digital Media, Financial Services, Energy, Government Research, National Defense and Web Infrastructure use TotalView Technologies' products to ensure the rapid development of mission critical applications.
TotalView is a comprehensive source code analysis and memory error detection tool that dramatically enhances developer productivity by simplifying the process of debugging parallel, data-intensive, multi-process, multi-threaded or network-distributed applications. Built to handle the complexities of the world's most demanding applications, TotalView offers a number of advanced features that help speed development and eliminate bugs quickly. Most recent versions also support Cell Broadband Engine-based Linux systems utilizing the IBM Cell Software Development Kit (SDK), and the IBM Blue Gene/P platform
ReplayEngine's records the execution history of your program and makes that history available for diagnosis with TotalView. This new approach - workingback from a failure, error, or crash to its root cause - eliminates the need to restart your program repeatedly with different breakpointlocations. The ability to step freely both forwards and backwards through program execution drastically reduces the amount of time invested in troubleshooting your code.
"We used to use print statements to debug our code. Since switching to TotalView we have reduced debugging time by about 20%, and expect this figure to grow to 40% as we increase our use of TotalView for parallel programs using MPI and Open MP. The built-in memory debugger has been key to optimizing memory use in our multi-processor applications. Even better, TotalView gives us the flexibility to use the same tool on a variety of platforms. Bottom line, TotalView is an essential tool in our application development."
-Mats Carlsson, Professor of Astrophysics
University of Oslo
The way ReplayEngine works is by recording program context at critical points during execution. The libraries are instrumented to capture all function and system calls, recording the program state at each point. When the user chooses to back up to a specific location in the code, the recorded execution is rerun in a simulated replay environment, starting at the closest point to where the user wants to return, and executing forward to that instruction. At that point, the user can continue to back up or go forward again.
Since ReplayEngine controls I/O, it is able to rerun these external events as they originally occurred. For example, when the program makes a read() call during program execution, the input actually happens and ReplayEngine captures the data. During replay mode, the program may be asked to run through that execution again one or more times. In those cases, the read() call will be intercepted by ReplayEngine and the recorded input data will be used. This ensures deterministic behavior during backward debugging.
ReplayEngine buttons allow you step backward over or into functions. You can also back up out of the current function to the point before the call. Another button lets you move back to a specified source line. The normal breakpoints, watchpoints, and some conditional breakpoints can be used when running forward in replay mode. A live button allows you to jump back into normal debugging mode.
MemoryScape is an easy-to-use, graphical, dynamic memory analysis tool that helps developers, build engineers and QA engineers identify and resolve difficult memory problems in C, C++ and Fortran. MemoryScape's built-in scriptinglanguage makes batch mode testing easy and efficient. Like other toolsfrom TotalView Technologies, it's built natively to handle multi-process and multi-threaded programs.
Designed to be an integrated part of the software development process, MemoryScape allows development teams to watch for memory leaks and monitor memory usage while an application is running. It enables developers to monitor heap memory, view memory usage, locate memory leaks, track memory events and show corrupted memory. Developers can also save and compare memory states and compile sophisticated memory reports. MemoryScape is non-intrusive, so developers can find memory problems without recompiling, and without waiting all day for even the smallest test to run.
MemoryScape 2.1 extends the product's capabilities to now include:
- Improved MPI launch
Enables customers to run MemoryScape without having to reconfigure their MPI installation.
- Multi-file loading
Simplifies working with core files from parallel applications.
- New simplified memscript output
Makes comparison between runs easier.
- New operating systems supported, including:
Mac OS X 10.4.5, 10.4.8 and 10.4.9
Fedora Core 7
Ubuntu 1.06 |