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.

Figure 100: Root Window for a<br />

Cell Program<br />

Debugging IBM Cell Broadband Engine Programs<br />

The second step is to load the executable into the SPE context. The final<br />

step is to run the SPU executable.<br />

PPU and SPU Executable Naming<br />

If your SPU programs are embedded into your PPU program, <strong>TotalView</strong><br />

names the SPU program in the following way:<br />

ppu.exe(spu.exe@offset)<br />

ppu.exe is the name of the PPU image containing the SPU executable and offset<br />

is the file offset within ppu.exe. spu.exe is the name of the SPU executable.<br />

If, however, the SPU executable is opened at runtime using libspe, the SPU<br />

name is shown as:<br />

spu.exe<br />

Thread IDs<br />

Another difference is the <strong>TotalView</strong> TID (Thread ID). An SPU thread has a<br />

negative number. This differentiates it from the positive TIDs used for PPU<br />

threads. Negative TIDs on other architectures have a different meaning. On<br />

these other architectures, a negative TID represents a manager thread that<br />

is performing an activity for which you have little interest. (See Figure 100.)<br />

All SPU threads can be run synchronously or asynchronously. Like all<br />

threads within <strong>TotalView</strong>, you can use the CLI to place SPU threads in a<br />

named group and control these named groups separately.<br />

Breakpoints<br />

An SPU thread share group shares one characteristic of a process share<br />

group: breakpoints can be shared across the threads. That is, when you<br />

plant a breakpoint in one thread in the share group, <strong>TotalView</strong> can plant it<br />

in all members. (See Figure 101 on page 142.))<br />

Breakpoints can be in a pending state; that is, if <strong>TotalView</strong> cannot assign a<br />

breakpoint to an address because an SPU executable is not yet loaded,<br />

<strong>TotalView</strong> will wait until it can set the breakpoint.<br />

<strong>TotalView</strong> Reference <strong>Guide</strong>: version 8.7 141

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

Saved successfully!

Ooh no, something went wrong!