Holding and Releasing Processes and Threads

TotalView allows you to hold and release processes and threads. When something is held, all commands that tell it to run, such as Process > Go or Group > Go, have no effect.

Manually holding and releasing processes and threads is useful if:

  • You wish to run a subset of the processes and threads, you can manually hold all but the ones you want to run.
     
  • A process is held at a barrier point and you want to run it without first running all the other processes in the group to that barrier, you can release it manually and then run it. Thread behavior at thread barriers is similar.

A process or thread may also be held if it stops at a barrier breakpoint. You can manually release a process or thread being held at a barrier breakpoint. See Barrier Breakpoints for more information on manually holding and releasing barrier breakpoint.

When a process is being held, the Root Window and Process Window display a held indicator. (This is a letter H.) When a thread is being held, the letter displayed is h.

Here are the ways to hold or release a thread, process, or group of processes:

  • You can hold a group of processes by choosing the Group > Hold command.
     
  • You can then release the group of processes by choosing the Group > Release command.
     
  • You can toggle the hold/release state of a process by selecting and deselecting the Process > Hold command.
     
  • You can toggle the hold/release state of a thread by selecting and deselecting the Thread > Hold command.

If a process or a thread is running when you issue a hold or release command, TotalView first stops the process or thread then holds it.

Note:   Releasing a process does not mean that the thread will resume executing; execution only resumes after you use one of the execution commands. In addition, TotalView allows you to hold and release processes independently from threads. That is, changing a process's hold state does not affect its threads' hold state and vice versa.

Notice that the Process pulldown also contains a Hold Threads and Release Threads command. If you select Hold Threads, the scope of what is held is the same as when you select Hold. This command, however, is used for another purpose. Assume that you are debugging a process with fifty threads and you want only a few of them to run. You could select Hold Threads, then go to the Threads menu to release only those that you want to run. That is, this command and Release Threads are convenience functions that can save you some work.

 
 
 
 
support@etnus.com
Copyright © 2001, Etnus, LLC. All rights reserved.
Version 5.0