TotalView Data Analysis

TotalView is the world’s most advanced debugger for Linux and Unix. It’s well known for its unique ability to debug complex, parallel and threaded code. And it stands alone in its ability to give you the information you need to understand your data and solve data-related problems. Powerful data analysis features put complete detail and visualization on any variables at your fingertips throughout your debugging session. TotalView makes it easier than ever to debug complex code with huge amounts of data. Check out some of the great capabilities that TotalView gives you to solve your toughest data problems.

 

Dive and Dive-in-All

Quickly drill down to get the information you need on any variable or object

TotalView users tell us our exclusive dive feature is a handy favorite. Dive gives you more information about any object, variable, structure, or array on which you click. It’s a wonderful, efficient way to drill down as far as necessary, until you get the information you need, at the instant you need it.

Expanding on dive, TotalView offers dive-in-all, which lets you drill down on any specific field or member within complex structures, so that you see only the interesting information across all instances of the structure. TotalView shows you results in the form of an array, then lets you apply powerful data analysis features like visualization, and array analysis.

 

Array Analysis

These features make it quick and easy to find problems in your data.

TotalView’s exceptional array analysis features reveal patterns, exceptions, out of range instances of data, and much more. These features make it fast and easy to find problems by quickly and easily analyzing your data. You may choose:

  • Slice – lets you view a portion of an array. For example, if you only want to see the first dimension of a 3-dimensional array, you can specify this in the Slice field of the Variable Window.

  • Filter – lets you display all of an array’s elements that meet some elementary expression. For example, if you want to see all values greater than 100, you can write an expression in the Filter field of the Data Window and TotalView will display only these elements of your array. TotalView offers intrinsics such as $INF and $NAN that also let you query an array for infinity number and NaNs.

  • Sort – You can sort what you see in the Data Window.

  • Statistics – you can get information like the size of the array, the number of infinities or NaNs contained in the array, the min or max values, and the like.

  • Visualization – a picture is worth a thousand words, and sometimes eliminates many hours of frustration. If your data has a pattern to it, yet you know something is wrong, imagine being able to watch your data change as the program executes. TotalView’s visualizer lets you visualize arrays at any given moment during execution. Or you can write an evaluation point to continually update the visualization as your program runs, in effect creating a movie of your data as your program executes.



And if your data is not in array form, TotalView has a solution as well. Do a dive-in-all upon a structure, or cast your data into an array. Then analyze at will with the above features.

 

View Across

See an object’s value across all processes or threads

If you write multi-process or multi-threaded code, you have data associated with each process or thread. There are many times when you’d like to see the value an object has across all those processes or threads. Rather than navigate from process to process and check the value, you can simply dive on a variable, and then select “View Across” from the View menu of the Data Window. This will show you the value of the object across all processes or threads in one simple and concise window.

 

STLView

Finally, view your template data in easily readable form

If you use the Standard Template Library, you know it can be very difficult to make sense out of your compiler’s output of templated data. It’s a bit like deciphering the symbols of some lost ancient language.

Finally, you can view your template data in easily readable form, with TotalView’s STLView utility. STLView removes this debugging obstacle by transforming common templates (STL vector, list, and map) into readable and understandable information. It’s a big step forward in C++ debugging and we know you’re going to love it. This valuable and very popular utility is now included at no charge with every TotalView license.

 

Watchpoints

Stop your program instantly when interesting data changes

Breakpoints are to code as watchpoints are to data. Stop your program instantly when interesting data changes. You can even make it conditional. Perhaps you only care if some variable surpasses a threshold of 100. It’s quick and easy to set this up, and you’ll find problems in your data more quickly.

 

Casting

With TotalView, you can cast just about anything to anything else!

TotalView’s ability to cast just about anything to anything else is powerful. Cast data into a more familiar form. Cast a dynamic array into a static one so that you can apply some of our exceptional data analysis techniques. Cast a structure to an array and then apply a filter to look at data that’s out of bounds. The options are endless and will help you gain insight when and where you need it.

 

Expression List Window

Gather and group data you want to see as you debug

TotalView’s new Expression List Window gathers and groups data you want to see as you debug. Create any number of expressions at varying levels of complexity in this window, and each time TotalView stops, it updates the result of those expressions. And if you stop and restart your program, TotalView will remember what you typed into the window.

The information you see in the Expression List Window is easily customized to meet your needs. Sort the list of expressions by clicking on the column heading by which you’d like your data sorted. Right click on the line containing the column headings to see options for other information you can display. You can also add or remove columns as you wish.

The expressions in the Expression List are focused on a specific process or thread. You can change the thread or process against which expressions are evaluated simply by typing in a different thread or process number in the thread/process box at the top of the window.

 

Output Data to a File

Save data for processing by another tool

Would you like to extract your data from your debugging session? Simply debug until your data is in the state in which you’d like to extract it, and select “Save to File” from the File menu.