Totalview® for HPC Reference Guide : PART I Using the CLI : Chapter 2 CLI Commands : spurs
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
spursbreak [ 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_PATHvariable. 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.
spurs [ help ]
To access help on the spurs command:
Enter spurs to return a one-line description of its commands.
Enter spurs helpto display more information about each spurs subcommand.
spurs add [ directory directory ... ]
Displays either a one-line description of this command or adds directories to search when TotalView looks for SPURS SPU executables.
spurs add writes a one-line description of this command.
spurs add directory directory adds a directory or directories to the CLI’s OBJECT_SEARCH_PATH variable. This variable contains the path used when searching for SPU ELF executable files. The directories are placed at the beginning of the list in the order in which they are named. If a directory is already in the list, the previously named directory is removed.
This command returns the modified OBJECT_SEARCH_PATHvariable.
spurs break [spu-image-name spu-source-location-expression ]
Displays either a one-line description of this command or adds a breakpoint.
spurs break returns a one-line description of this command.
spurs break spu-image-name spu-source-loc-expression creates an image-qualified breakpoint path. This is identical to the following CLI command:
dbreak -pending ##spu-image-name#source-loc-expr
This command creates a pending breakpoint that is located only with the image you name. However, if the image has already been loaded, TotalView sets an ordinary breakpoint rather than a pending breakpoint. The focus must be on an SPU thread.
This command returns the action point ID of the created breakpoint. You can use this ID with other CLI commands that act upon breakpoints; for example, dactions. ddelete, ddisable, denable, and others.
spurs delete breakpoint-id ...
Permanently removes one or more action points. The argument defines which action points to delete. Unlike spurs break, this command does not require that the command focus be set to an SPU thread.
spurs info [ directory | break ]
spurs info returns a one-line description of this command.
spurs info directory prints the OBJECT_SEARCH_PATHstate variable
spurs info break prints action point information about action points in the thread in the current focus.
spurs print
The spurs print command can be used in the following ways:
spurs print [ kernel [ eaSpurs ] |
barrier eaBarrier |
event_flag eaEventFlagSet |
lfqueue eaLFQueue |
queue eaQueue |
semaphore eaSemaphore |
taskset [ eaTaskset ] |
task eaTaskset taskID
spurs print
Displays one line of information on using this command.
spurs print kernel
Displays the kernel context for the SPU threads in the current or named focus. The focus must be one or more SPU threads.
cell_spurs_print_kernel is an alias for this command.
spurs print kerneleaSpurs
Displays the kernel context at PPU address eaSpurs. The command focus must be one or more PPU threads.
cell_spurs_print_kernel is an alias for this command.
spurs print barrier eaBarrier
Displays the barrier object at PPU address eaBarrier. The command focus must be one or more PPU threads.
cell_spurs_print_barrier_info is an alias for this command.
spurs print event_flag eaEventFlagSet
Displays the event flag object at PPU address eaEventFlagSet. The command focus must be one or more PPU threads.
cell_spurs_print_event_flag_info is an alias for this command.
spurs print lfqueue eaLFQueue
Displays the lfqueue object at PPU address eaLFQueue. The command focus must be one or more PPU threads.
cell_spurs_print_lfqueue_info is an alias for this command.
spurs print queue eaQueue
Displays the queue object at PPU address eaQueue. The command focus must be one or more PPU threads.
cell_spurs_print_queue_info is an alias for this command.
spurs print semaphore eaSemaphore
Displays the semaphore object at PPU address eaSemaphore. The command focus must be one or more PPU threads.
cell_spurs_print_semaphore_info is an alias for this command.
spurs print taskset
Prints the taskset for the focus SPU threads. The command focus must be one or more SPU threads.
cell_spurs_print_taskset is an alias for this command
spurs print taskset eaTaskset
Prints the taskset at PPU address eaTaskset. The command focus must be one or more SPU threads.
cell_spurs_print_taskset is an alias for this command
spurs print task eaTaskset taskID
Prints the task at index taskID in the taskset at PPU address eaTaskset. The command focus must be one or more PPU threads.
cell_spurs_print_task is an alias for this command.
spurs scan
This command is for compatibility with GDB. Unlike the GDB command, this command is a no-op as TotalView has no need to scan for SPU executables because searches for SPU executables happen dynamically.