Sets and gets process properties
TV::processaction[object-id] [other-args]
The action to perform, as follows:
Displays the subcommands that you can use. The CLI responds by displaying these four action subcommands. Do not use other arguments with this subcommand.
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.
Displays the properties that the CLI can access. Do not use other arguments with this subcommand.
Sets the values of one or more properties. The other-args arguments contains pairs of property names and values.
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.
Arguments required by the get and set subcommands.
The TV::process command lets you examine and set process properties and states, as the following list describes:
The full pathname of the current executable.
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).
The size of the process’s data segment.
The internal unique ID associated with an object.
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.
The amount of memory currently being used for data created at run­time. 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.
A Boolean value (either 1 or 0) indicating if the process is held. (1 means that the process is held.)
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.
The number of bits the guard block is aligned to.
The numerical value of the bit pattern written into the guard block preceding an allocated memory block.
The number of bits into which the guard block preceding an allocated memory block is written.
The numerical value of the bit pattern written into the guard block following an allocated memory block.
The number of bits into which the guard block following an allocated memory block is written.
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.
Contains a value indicating if the current process is a parallel process. If it is, its value is 1. Otherwise, its value is 0.
The process ID.
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.
Contains a value indicating if the current process is a parallel process. If it is, its value is 1. Otherwise, its value is 0.
The ID of the node upon which the process is running. The ID of each processor node is unique within a cluster.
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.
The name of the process currently being executed.
The rank of the currently selected process.
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.
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.
Current state of the process. See state_valuesfor a list of states.
A list of all possible values for the stateproperty: break, error, exited, running, stopped, or watch.
The system process ID.
The machine architecture upon which the current process is executing.
The bit ordering of the current machine. This is either little_endian or big_endian.
The kind of processor upon which the program is executing. For example, this could be x86 or x86-64.
The amount of memory used to store your program’s machine code instructions. The text segment is sometimes called the code segment.
The number of threads in the process.
A list of threads in the process.
The sum of the mapping sizes in the process’s address space.
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 Classic TotalView User Guide