dstatus
Shows current status of processes and threads
Format
dstatus
dstatus [ -g ]
dstatus [-group_by { control_group | share_group | process_state | hostname | replay | pheld
| thread_state | pc | function | line | dpid | dtid | apid | theld | stop_reason | sysid | utid_ktid | tname }
Arguments
-group_by | -g
Displays an aggregated view of the processes and threads in the current focus. The processes and threads are aggregated based on the order of the properties chosen in the comma-separated list of properties in the property list.
The aggregation is shown using either a compressed process list for process-level properties (
plist) or a compressed thread list for thread-level properties (
ptlist). See
Compressed List Syntax (ptlist)for a description of a
ptlist.
Process level properties:
control_group (abbreviated as cgroup)
The control group of the process
share_group (abbreviated as sgroup)
The share group of the process
process_state (abbreviated as pstate)
The state of the process
replay
The replay mode of the process. A process can be in three replay states: Replay Unavailable, Replay, or -Record.
pheld
Process hold state: Held or UnHeld.
dpid
The debugger-assigned process ID
hostname
The hostname of the process
Thread level properties:
thread_state (abbreviated as tstate)
The state of the thread
pc
The Program Counter of the thread
function
The function where the thread’s pc is currently
line
The line number for the current thread’s pc
dtid
The debugger-assigned thread ID
apid
The action point identifier that the thread’s pc is on. If the thread is not at an action point, it is grouped as No Action
theld
The thread’s held state, either Held or Not Held
stop_reason
The stop code and stop message for a stopped thread
systid
Either the user thread ID (utid) or the kernel thread ID (ktid) if no utid exists
utid_ktid
"utid / ktid" or just ktid if no utid exists. User level thread IDs are assigned by a runtime library such as a pthreads implementation. Kernel thread IDs are assigned by the operating system.
tname
Thread name or "<unnamed>" if no thread name has been defined. Some runtime implementations, such as pthreads, allow the user to programmatically assign a name to a thread.
-pcount
Alias for the -ptlist_element_count argument
-ptlist_element_count number
Displays, at maximum, number elements (comma separated plists or ptlists) in the process/thread compressed list that is shown in a reduced dstatus display. If a reduction results in exceeding the ptlist_element_count, an ellipsis is appended. For instance, if ptlist_element_count is set to 5:
[p1-4.1, p2.2, p3-4.3, p5.4, p6.1-2, ...]
To change the default value, use the TotalView State variable ptlist_element_threshold. For example:
dset TV::ptlist_element_threshold 10
-levels
The number of levels to show for a set of properties. If no levels are specified, then each property is reduced on a new line with indentation. If the number of levels is less than the number of specified properties, then the remaining properties are shown in a single reduction on one line.
-v
Show verbose output in the reduced display. Without -v, full paths of filenames and line numbers are not displayed.
-detail
Force full detailed information for the current state of each process and thread in the current focus. This option affects the amount of information displayed from grouping by function.
-thread_name
Show a thread’s name, if one exists.
Description
With the -group_by option, the dstatus command displays an aggregated view of the process and thread state in the current focus. To make the display more useful, you can reduce it based on specific properties, provided as arguments as described above. The full detail shows the current state of each process and thread in the current focus. ST is aliased to dfocus g dstatus and acts as a group-status command. Type help ptset for more information.
If you have not changed the focus, the default is process. In this case, the dstatus command shows the status for each thread in process 1. In contrast, if you set the focus to g1.<, the CLI displays the status for every thread in the control group. When you limit thread state display by certain properties, the output is displayed as a compressed thread list, or ptlist.
Compressed List Syntax (ptlist)
A compressed ptlist consists of a process and thread count, followed by square-bracket-enclosed list of process and thread ranges separated by dot (.). If the thread range is missing, it's merely a compressed list of processes and it is referred to as a plist.
If the process range starts with the letter p, the process IDs are TotalView DPIDs (debugger unique process identifiers); otherwise, they are the MPI rank for the process, MPI_COMM_WORLD.
The thread IDs are always TotalView DTIDs (debugger unique thread identifiers). For example, the compressed ptlist 5:13[0-3.1-3, p1.1] indicates that there are five processes and 13 threads in the list. The process and thread range 0-3.1-3 indicates MPI rank processes 0 through 3, each with DTIDs 1 through 3. The process range p1.1 indicates process DPID 1 and thread DTID 1, normally the MPI starter process named mpirun.
Command alias
Alias | Definition | Description |
---|
st | dstatus | Shows current status |
ST | {dfocus g dstatus} | Shows group status |
Examples
dstatus
Displays the status of all processes and threads in the current focus; for example:
1: 42898 Breakpoint [arraysAIX]
1.1: 42898.1 Breakpoint \
PC=0x100006a0,[./arrays.F#87]
f a st
Displays the status for all threads in all processes.
f p1 st
Displays the status of the threads associated with process 1. If the focus is at its default (d1.<), this is the same as typing st.
ST
Displays the status of all processes and threads in the control group having the focus process; for example:
1: 773686 Stopped [fork_loop_64]
1.1:773686.1 Stopped PC=0x0d9cae64
1.2:773686.2 Stopped PC=0x0d9cae64
1.3:773686.3 Stopped PC=0x0d9cae64
1.4:773686.4 Stopped PC=0x0d9cae6
2: 779490 Stopped [fork_loop_64.1]
2.1:779490.1 Stopped PC=0x0d9cae64
2.2:779490.2 Stopped PC=0x0d9cae64
2.3:779490.3 Stopped PC=0x0d9cae64
2.4:779490.4 Stopped PC=0x0d9cae64
f W st
Shows status for all worker threads in the focus set. If the focus is set to d1.<, the CLI shows the status of each worker thread in process 1.
f W ST
Shows status for all worker threads in the control group associated with the current focus.
In this case, TotalView merges the W and gspecifiers in the STalias. The result is the same as if you had entered f gW st.
f L ST
Shows status for every thread in the share group that is at the same PC as the thread of interest(TOI).
d1.<> dfocus g dstatus -group_by thread_state, function
First reduces the focus by thread_state, then further breaks down and reduces the results according to the function the threads are in within each thread state. This call might output this reduced display:
Focus: 4:20[p1-4.1-5]
Breakpoint : 4:4[p1.2, p3-4.2, p2.3]
snore : 4:4[p1.2, p3-4.2, p2.3]
Stopped : 4:16[p1-4.1, p2.2, p1.3, p3-4.3, p1-4.4-5]
.___newselect_nocancel : 4:13[p1-4.1, p2.2, p3-4.3, p1.4]
snore : 2:3[p1.3, p2.4-5]
The above output displays the reduction produced by the
group_by command as a series of
ptlists. (See above,
Compressed List Syntax (ptlist)).
dfocus group dwhere -group_by function
This dwhere call output shows that all the processes have the first three frames in their backtrace but then they diverge and one process is in function rank0 while the other three processes are in rankn.
+/ : 10:10[0-9.1]
+_start
+__libc_start_main
+main
+rank0 : 1:1[0.1]
+rankn : 3:3[1.1, 5.1, 8.1]
Related Topics