30.01.2013 Views

TotalView Users Guide - CI Wiki

TotalView Users Guide - CI Wiki

TotalView Users Guide - CI Wiki

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Diving into Objects<br />

Figure 121: Nested Dive<br />

Diving on processes and threads in the Root Window is the quickest way to<br />

display a Process Window that contains information about what you’re diving<br />

on. The procedure is simple: dive on a process or thread and <strong>TotalView</strong> takes<br />

care of the rest. Another example is diving on variables in the Process Window,<br />

which tells <strong>TotalView</strong> to display information about the variable in a Variable<br />

Window.<br />

The following table describes typical diving operations:<br />

Items you dive on: Information Displayed:<br />

Process or thread When you dive on a thread in the Root Window,<br />

<strong>TotalView</strong> finds or opens a Process Window for that<br />

process. If it doesn’t find a matching window,<br />

<strong>TotalView</strong> replaces the contents of an existing<br />

window and shows you the selected process.<br />

Variable The variable displays in a Variable Window.<br />

Expression List Variable Same as diving on a variable in the Source Pane: the<br />

variable displays in a Variable Window.<br />

Routine in the Stack Trace Pane The stack frame and source code for the routine<br />

appear in a Process Window.<br />

Array element, structure element,<br />

or referenced memory area<br />

The contents of the element or memory area<br />

replace the contents that were in the Variable<br />

Window. This is known as a nested dive.<br />

Pointer <strong>TotalView</strong> dereferences the pointer and shows the<br />

result in a separate Variable Window. Given the<br />

nature of pointers, you may need to cast the result<br />

into the logical data type.<br />

Subroutine The source code for the routine replaces the<br />

current contents of the Source Pane. When this<br />

occurs <strong>TotalView</strong> places a right angle bracket (>)<br />

in the process’s title. Every time it dives, it adds<br />

another angle bracket. See the figure that follows<br />

this table<br />

A routine must be compiled with source-line<br />

information (usually, with the –g option) for you to<br />

dive into it and see source code. If the subroutine<br />

wasn’t compiled with this information, <strong>TotalView</strong><br />

displays the routine’s assembler code.<br />

Variable Window <strong>TotalView</strong> replaces the contents of the Variable<br />

Window with information about the variable or<br />

element you’re diving on.<br />

Expression List Window <strong>TotalView</strong> displays information about the variable in<br />

a separate Variable Window.<br />

Diving on a struct or class member that is out of scope does not work.<br />

<strong>TotalView</strong> tries to reuse windows. For example, if you dive on a variable and<br />

that variable is already being displayed in a window, <strong>TotalView</strong> pops the<br />

174 Chapter 8: Using <strong>TotalView</strong> Windows

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!