Breakpoints
An SPU thread share group, as with a process share group, can share breakpoints across threads. That is, when you plant a breakpoint in one thread in the share group, TotalView can plant it in all members.
Breakpoints can be in a pending state; if TotalView cannot assign a breakpoint to an address because an SPU executable is not yet loaded, TotalView waits until it can set the breakpoint.
When the PPU thread loads an SPU executable into an SPU context, execution stops and you are prompted to set a breakpoint if you wish,
Figure 243.
To control the launch of this popup, use the following CLI variables:
• TV::ask_on_cell_spu_image_load
• TV::cell_spu_image_ignore_regexp
• TV::cell_spu_images_stop_regexp
These variables are described in
“TotalView Variables,”in the
TotalView Reference Guide.
To create a breakpoint in SPU threads, select Yes. Then select an SPU thread. You can now navigate within this code and set breakpoints.
When you exit from your program or when you manually save breakpoints, TotalView writes breakpoints for each SPU thread share group. The next time your program loads an SPU executable into an SPU context, these breakpoints are read back in.
Within the CLI, your focus determines if the breakpoint is shared or unshared. For example::
Focus | Type of Breakpoint |
dfocus t 1.-1 dbreakpoint main | Unshared breakpoint |
dfocus p 1.-1 dbreakpoint main | Unshared breakpoint |
dfocus d 1.-1 dbreakpoint main | Shared breakpoint |
dfocus g 1.-1 dbreakpoint main | Shared breakpoint |