30.01.2013 Views

TotalView Users Guide - CI Wiki

TotalView Users Guide - CI Wiki

TotalView Users Guide - CI Wiki

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Figure 150: The Threads Tab<br />

Updating Process Information<br />

Manipulating Processes and Threads<br />

Normally, <strong>TotalView</strong> only updates information when the thread being executed<br />

stops executing. You can force <strong>TotalView</strong> to update a window by<br />

using the Window > Update command. You need to use this command if<br />

you want to see what a variable’s value is while your program is executing.<br />

When you use this command, <strong>TotalView</strong> momentarily stops execution so that it can<br />

obtain the information that it needs. It then restarts the thread.<br />

Holding and Releasing Processes and Threads<br />

Many times when you are running a multi-process or multi-threaded program,<br />

you want to synchronize execution to the same place. You can do this manually<br />

using a hold command, or automatically by setting a barrier point.<br />

When a process or a thread is held, any command that it receives that tells<br />

it to execute are ignored. For example, assume that you place a hold on a<br />

process in a control group that contains three processes. After you select<br />

Group > Go, two of the three processes resume executing. The held process<br />

ignores the Go command.<br />

At a later time, you will want to run what is being held. Do this using a<br />

Release command. When you release a process or a thread, you are telling<br />

it that it can run. But you still need to tell it to execute, which means that it<br />

is waiting to receive an execution command, such as Go, Out, or Step.<br />

Manually holding and releasing processes and threads is useful in the following<br />

instances:<br />

� When you need to run a subset of the processes and threads. You can<br />

manually hold all but the ones you want to run.<br />

� When a process or thread is held at a barrier point and you want to run it<br />

without first running all the other processes or threads in the group to<br />

that barrier. In this case, you release the process or the thread manually,<br />

and then run it.<br />

<strong>TotalView</strong> can also hold a process or thread if it stops at a barrier breakpoint.<br />

You can manually release a process or thread being held at a barrier<br />

breakpoint. See “Setting Barrier Points” on page 362 for more information on<br />

manually holding and releasing barrier breakpoint.<br />

When <strong>TotalView</strong> is holding a process, the Root and Process Windows display<br />

a held indicator, which is the uppercase letter H. When <strong>TotalView</strong> is<br />

holding a thread, it displays a lowercase h.<br />

<strong>TotalView</strong> <strong>Users</strong> <strong>Guide</strong>: version 8.7 231

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

Saved successfully!

Ooh no, something went wrong!