/// <summary> /// Builds a predicate for an ExecutionSyncPoint that can be used with RunUntil(Func<bool>). /// </summary> Func <bool> GetPredicate(API.ExecutionSyncPoint syncPoint) { var context = Session.Context; return(() => (syncPoint.HasFlag(API.ExecutionSyncPoint.ENGINE_CREATED) && context.DebugEngine != null) || (syncPoint.HasFlag(API.ExecutionSyncPoint.PROCESS_CREATED) && context.Process != null) || (syncPoint.HasFlag(API.ExecutionSyncPoint.PROGRAM_SELECTED) && context.DebugProgram != null) || (syncPoint.HasFlag(API.ExecutionSyncPoint.THREAD_SELECTED) && context.SelectedThread != null) || (syncPoint.HasFlag(API.ExecutionSyncPoint.FRAME_SELECTED) && context.SelectedStackFrame != null) || (syncPoint.HasFlag(API.ExecutionSyncPoint.BREAK) && context.ProgramState == ProgramState.AtBreak) || (syncPoint.HasFlag(API.ExecutionSyncPoint.IDLE) && _jobQueue.Empty) || (syncPoint.HasFlag(API.ExecutionSyncPoint.PROGRAM_RUNNING) && context.ProgramState == ProgramState.Running) || (syncPoint.HasFlag(API.ExecutionSyncPoint.PROGRAM_TERMINATED) && context.ProgramState == ProgramState.Terminated)); }
public void RunUntil(API.ExecutionSyncPoint syncPoint, TimeSpan timeout) { RunUntil(GetPredicate(syncPoint), timeout); }
public SyncPointAttribute(API.ExecutionSyncPoint syncPoint) { SyncPoint = syncPoint; }