The problem is that in order for an execution to break, all threads must be at a breakpointable location. In otherwords, all threads must be between steps. There is however a way around this.
Using the TestStand API property Thread.ExternallySuspended, you can tell the teststand engine to treat the thread that is running your VI as if it were an already suspended thread. When a thread is externally suspended, TestStand no longer requires it to be between steps in order for the execution to break.
The way you use the property, Thread.ExternallySuspended, is to set the property to true before the code in your vi starts running and then set it to false immediately before returning from your vi (You can get a reference to the thread from SequenceContext.Thread). If y
ou set the property to false while the execution is at a breakpoint, the vi will block on the call to set the property until the execution in teststand continues. For more information on Thread.ExternallySuspended, see the TestStand API Help section on this property.
Hope this helps,
Douglas Melamed
National Instruments