spurs
Returns information on the spurs library use
Format:
Displays help information
spurs [ help ]
Adds directories to the
OBJECT_SEARCH_PATH variable
spurs add [ directory directory ... ]
Creates an image-qualified breakpoint
spurs break [ spu-image-name spu-source-location-expression ]
Deletes breakpoints
spurs delete breakpoint-id ...
Shows the directories in which TotalView searches for SPURS SPU ELF executables
spurs info [ directory | break ]
Prints information about the kernel, the taskset, tasks, and other SPURS objects
spurs print [ kernel [ eaSpurs ] |
barrier eaBarrier |
event_flag eaEventFlagSet |
lfqueue eaLFQueue |
queue eaQueue |
semaphore eaSemaphore |
taskset [ eaTaskset ] |
task eaTaskset taskID ]
Scans for information—this is a no-op
spurs scan
Arguments:
directory
The directory or directories to be added to the CLI’s
OBJECT_SEARCH_PATH variable. For example:
spurs add directory directory1 directory2
Notice that directory names are separated by space characters.
spu-image-name
The name of the image that is or will be loaded by TotalView
spu-source-location-expression
An expression that resolves to a specific line in the image. For information on location expressions, see
dbreak.
breakpoint-id
The action point ID to delete
eaSpurs
The kernel context at this PPU address
eaBarrier
The barrier object at this PPU address
eaEventFlagSet
The event flag object at this PPU address
eaLFQueue
The lfqueue object at this PPU address
eaQueue
The queue object at this PPU address
eaSemaphore
The semaphore object at this PPU address
eaTaskset
The taskset at this PPU address
taskID
The task at this index
Description:
Modeled after the GDB “spurs” command, the spurs command was created so that developers who are familiar the GDB command have a similar set of commands in TotalView. However, not all GDB “spurs” commands are implemented.
TotalView supports the SPURS library. Here’s this library’s description in the SPURS documentation:
libspurs is a user-level thread library for SPUs. In a SPURS environment (SPU Runtime System), SPU threads are managed by SPUs. For this reason, thread switching is more efficient than under PPU management and requires no PPU resources. Using SPURS also makes it easier to synchronize threads and adjust the load balance on multiple SPUs. SPURS is furthermore highly extensible and allows users to define their own thread models as necessary.