duntil
Runs the process until a target place is reached
Format:
Runs to a line
duntil line-number
Runs to an address
duntil -address addr
Runs into a function
duntil proc-name
Arguments:
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 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 that are not running to the goal are allowed to run. If one of the "secondary" threads arrives at the goal before the thread of interest, it continues running, ignoring this goal. In contrast, if you specify thread width, only the thread of interest runs.
The duntil command differs from other step commands when you apply it to a group.
Process group
TotalView runs the entire group and the CLI waits until all processes in the group have at least one thread that has arrived at the goal breakpoint. This lets you sync up all the processes in a group in preparation for group-stepping them.
Thread group
TotalView 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.
The differences between this command and other stepping commands are:
- Process Group Operation: TotalView examines the thread of interest to see if it is already at the goal. If it is, TotalView does not run the process of interest. Similarly, TotalView examines all other processes in the share group, and it only run processes that do not have a thread at the goal. It also runs members of the control group that are 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 are run. While 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 that are 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 that are 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:
You may find the following aliases useful:
Alias |
Definition |
Meaning |
un |
{duntil} |
Runs the thread of interest 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 have a thread at the goal do not run. |
unl |
{dfocus L duntil} |
Runs the thread of interest until it reaches the target, and runs all threads in the process that are at the same PC as the thread of interest to the same target. Other threads in the process run freely. The group of threads that are 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 are allowed to 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
Lines up all worker threads at line 580.
un buggy_subr
Runs to the start of the buggy_subr routine.