duntil
Runs the process until a target place is reached
Format:
Runs to a line
duntil [ -back ] line-number
Runs to an address
duntil [ -back ] -address addr
Runs into a function
duntil [ -back ] proc-name
Arguments:
-back
(ReplayEngine only) Steps to the previous instruction, moving into subroutines that called the current function. This option can be abbreviated to -b.
line-number
A line number in your program.
-address addr
An address in your program.
proc-name
The name of a procedure, function, or subroutine in your program.
Description:
The duntil command runs the thread of interest (TOI) until execution reaches a line or absolute address, or until it enters a function.
If you use a process or group width, all threads in the process or group not running to the goal are allowed to run. If a secondary thread arrives at the goal before the TOI, the thread continues running, ignoring this goal. In contrast, if you specify thread width, only the TOI runs.
The
duntil command differs from other step commands when you apply it to a group, as follows:
Process group
Runs the entire group, and the CLI waits until all processes in the group contain at least one thread that has arrived at the goal breakpoint. This lets you sync all the processes in a group in preparation for group-stepping them.
Thread group
Runs the process (for p width) or the control group (for g width) and waits until all the running threads in the group of interest arrive at the goal.
There are some differences in the way processes and threads run using the duntil command and other stepping commands:
Process Group Operation: TotalView examines the
TOI to see if it is already at the goal. If it is, TotalView does not run the
POI. Similarly, TotalView examines all other processes in the share group, and runs only processes without a thread at the goal. It also runs members of the control group not in the share group.
Group-Width Thread Group Operation: TotalView identifies all threads in the entire control group that are not at the goal. Only those threads run. Although TotalView runs share group members in which all worker threads are already at the goal, it does not run the workers. TotalView also runs processes in the control group outside the share group. The
duntil command operation ends when all members of the focus thread group are at the goal.
Process-Width Thread Group Operation: TotalView identifies all threads in the entire focus process not already at the goal. Only those threads run. The
duntil command operation ends when all threads in the process that are also members of the focus group arrive at the goal.
Command alias:
Alias | Definition | Description |
un | duntil | Runs the TOI until it reaches a target, while allowing other threads in the process to run. |
UN | {dfocus g duntil} | Runs the entire control group until every process in the share group has at least one thread at the goal. Processes that have a thread at the goal do not run. |
unl | {dfocus L duntil} | Runs the TOI until it reaches the target, and runs all threads in the process that are at the same PC as the TOI to the same target. Other threads in the process run freely. The group of threads that is at the same PC is called the lockstep group. This does not force process width. If the default focus is set to group, this runs the group. |
UNL | {dfocus gL duntil} | Runs lockstep threads in the share group until they reach the target. Other threads in the control group run freely. |
unw | {dfocus W duntil} | Runs worker threads in the process to a target. The nonworker threads in the process run freely. This does not force process width. If the default focus is set to group, this runs the group.
|
UNW | {dfocus gW duntil} | Runs worker threads in the same share group to a target. All other threads in the control group run freely. |
Examples:
UNW 580
Runs all worker threads to line 580.
un buggy_subr
Runs to the start of the buggy_subr routine.