duntil
Runs the process until a target place is reached
Format
Runs to a line
duntil [ -back ] line-number
Runs to an absolute address
duntil [ -back ] -address addr
Runs into a function
duntil [ -back ]proc-name
Arguments
-b|-back
(ReplayEngine only). Moves back in execution time to the most recent point at which the other argument (line-number, address, or proc-name) was executed.
line-number
A line number in your program.
-addressaddr
An absolute address in your program.
proc-name
The name of a procedure, function, or subroutine in your program.
Description
The duntil command runs the threads that are members of the focus group until execution reaches the goal specified by the line number, absolute address, or function arguments. Threads already stopped at the goal are not run. Execution ends when a thread reaches the goal or stops for any other reason.
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. 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.
• Process-Width Thread Group Operation: TotalView identifies all threads in the entire focus process not already at the goal. Only those threads run.
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.
Related Topics