Barrier Points
In a multithreaded, multi-process program, threads and processes are often executing different instructions, so cannot be easily synchronized to all stop at the same breakpoint. Use a barrier breakpoint to hold processes and threads that reach the barrier point until all have reached it. With a barrier point, you can use the Group > Go command as many times as it takes to get all of your processes to the barrier, and you won’t have to worry about a process running past it.
The Processes and Threads pane displays which processes have hit the barrier, grouping all held processes under Breakpoint in the first column.
You can fine-tune how a barrier works to define additional elements to stop when a barrier point is satisfied or a thread encounters a barrier point. You can also incorporate an expression into a barrier point, similar to an evalpoint.
To insert a default barrier point:
dbarrier 123
This barrier stops each thread in all processes in the control group when it arrives at line 123. After all processes arrive, the barrier is satisfied, and TotalView releases all processes.