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 plist s or ptlist s) 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 g specifiers in the ST alias. 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

The Processes & Threads View

dwhat

dwhere