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.

Manipulating Processes and Threads<br />

Figure 152: Control and<br />

Share Groups Example<br />

Process Groups Process Names Relationship<br />

Control<br />

Group 1<br />

Control<br />

Group 2<br />

Share Group 1<br />

Share Group 2<br />

Share Group 3<br />

Placing Processes in Groups<br />

filter<br />

filter.1<br />

filter.2<br />

filter.1.1<br />

generate<br />

<strong>TotalView</strong> uses your executable’s name to determine the share group that<br />

the program belongs to. If the path names are identical, <strong>TotalView</strong> assumes<br />

that they are the same program. If the path names differ, <strong>TotalView</strong><br />

assumes that they are different, even if the file name in the path name is<br />

the same, and places them in different share groups.<br />

Starting Processes and Threads<br />

To start a process, select a Go command from the Group, Process, or<br />

Thread pulldown menus.<br />

After you select a Go command, <strong>TotalView</strong> decides what to run based on<br />

the current thread. It uses this thread, which is called the Thread of Interest<br />

(TOI), to decide what other threads it should run. For example, if you select<br />

Group > Go, <strong>TotalView</strong> continues all threads in the current group that are<br />

associated with this thread.<br />

CLI: dfocus g dgo<br />

Abbreviation: G<br />

The commands you will use most often are Group > Go and Process > Go.<br />

The Group > Go command creates and starts the current process and all<br />

other processes in the multi-process program. There are some limitations,<br />

however. <strong>TotalView</strong> only resumes a process if the following are true:<br />

� The process is not being held.<br />

� The process is already exists and is stopped.<br />

� The process is at a breakpoint.<br />

parent process #1<br />

child process #1<br />

child process #2<br />

grandchild process #1<br />

parent process #2<br />

Using a Group > Go command on a process that’s already running starts<br />

the other members of the process’s control group.<br />

CLI: dgo<br />

If the process hasn’t yet been created, Go commands creates and starts it.<br />

Starting a process means that all threads in the process resume executing<br />

unless you are individually holding a thread.<br />

236 Chapter 12: Debugging Programs

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

Saved successfully!

Ooh no, something went wrong!