process
Sets and gets process properties
Format
TV::processaction[object-id] [other-args]
Arguments
action
The action to perform, as follows:
commands
Displays the subcommands that you can use. The CLI responds by displaying these four action subcommands. Do not use other arguments with this subcommand.
get
Gets the values of one or more process properties. The other-argsargument can include one or more property names. The CLI returns these property values in a list whose order is the same as the names you enter. If you use the -all option instead of object-id, the CLI returns a list containing one (sublist) element for each object.
properties
Displays the properties that the CLI can access. Do not use other arguments with this subcommand.
set
Sets the values of one or more properties. The other-args arguments contains pairs of property names and values.
object-id
An identifier for a process. For example, 1 represents process 1. If you use the -all option, the operation executes upon all objects of this class in the current focus.
other-args
Arguments required by the get and set subcommands.
Description
The TV::process command lets you examine and set process properties and states, as the following list describes:
cannonical_executable_name
The full pathname of the current executable.
clusterid
The ID of the cluster containing the process. This is a number uniquely identifying the TotalView server that owns the process. The ID for the cluster TotalView is running in is always 0 (zero).
data_size
The size of the process’s data segment.
duid
The internal unique ID associated with an object.
executable
Like canonical_execution_name, this is the absolute file name of the program being debugged. It differs in that it contains an symbolic links and the like that exist for the program.
heap_size
The amount of memory currently being used for data created at runtime. Stated in a different way, the heap is an area of memory that your program uses when it needs to dynamically allocate memory. For example, calls to the malloc()function allocate space on the heap while the free() function releases the space.
held
A Boolean value (either 1 or 0) indicating if the process is held. (1 means that the process is held.)
hia_guard_max_size
The value set for the maximum size for guard blocks that surround a memory allocation. See the Debugging Memory Problems with MemoryScape™ for information on what this size represents.
hia_guard_payload_alignment
The number of bits the guard block is aligned to.
hia_guard_pre_pattern
The numerical value of the bit pattern written into the guard block preceding an allocated memory block.
hia_guard_pre_size
The number of bits into which the guard block preceding an allocated memory block is written.
hia_guard_post_pattern
The numerical value of the bit pattern written into the guard block following an allocated memory block.
hia_guard_post_size
The number of bits into which the guard block following an allocated memory block is written.
hia_paint_pattern_width
Deprecated
hostname
A name of the process’s host computer and operating system (if needed); for example, linux-x86 would be returned if the program is running on a 32-bit linux system.
is_parallel
Contains a value indicating if the current process is a parallel process. If it is, its value is 1. Otherwise, its value is 0.
id
The process ID.
image_ids
A list of the IDs of all the images currently loaded into the process both statically and dynamically. The first element of the list is the current executable.
is_parallel
Contains a value indicating if the current process is a parallel process. If it is, its value is 1. Otherwise, its value is 0.
nodeid
The ID of the node upon which the process is running. The ID of each processor node is unique within a cluster.
parallel_attach_subset
Contains the specification for MPI ranks to be attached to when an MPI job is created or attached to. See
‑parallel_attach_subset subset_specification.
proc_name
The name of the process currently being executed.
rank
The rank of the currently selected process.
stack_size
The amount of memory used by the currently executing block or routines, and all the routines that have invoked it. For example, if your main routines invokes the foo() function, the stack contains two groups of information—these groups are called frames. The first frame contains the information required for the execution of your main routine and the second, which is the current frame, contains the information needed by the foo() function. If foo() invokes the bar() function, the stack contains three frames. Whenfoo()finishes executing, the stack only contains one frame.
stack_vm_size
The logical size of the stack is the difference between the current value of the stack pointer and the address from which the stack originally grew. This value can be different from the size of the virtual memory mapping in which the stack resides. For example, the mapping can be larger than the logical size of the stack if the process previously had a deeper nest of procedure calls or made memory allocations on the stack, or it can be smaller if the stack pointer has advanced but the intermediate memory has not been touched.
The stack_vm_size value is this difference in size.
state
Current state of the process. See state_valuesfor a list of states.
state_values
A list of all possible values for the stateproperty: break, error, exited, running, stopped, or watch.
syspid
The system process ID.
target_architecture
The machine architecture upon which the current process is executing.
target_byte_ordering
The bit ordering of the current machine. This is either little_endian or big_endian.
target_processor
The kind of processor upon which the program is executing. For example, this could be x86 or x86-64.
text_size
The amount of memory used to store your program’s machine code instructions. The text segment is sometimes called the code segment.
threadcount
The number of threads in the process.
threads
A list of threads in the process.
vm_size
The sum of the mapping sizes in the process’s address space.
Examples
f g TV::process get -all id threads
For each process in the group, creates a list with the process ID followed by the list of threads; for example:
{1 {1.1 1.2 1.4}} {2 {2.3 2.5}} {3 {3.1 3.7 3.9}}
TV::process get 3 threads
Gets the list of threads for process 3; for example:
1.1 1.2 1.4
TV::process get 1 image_ids
Returns a list of image IDs in process 1; for example:
1|1 1|2 1|3 1|4
Related Topics
Using Groups, Processes, and Threads in the Group, Process, and Thread Control chapter of the Classic TotalView User Guide