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.