<p><b>Abstract</b>—Global predicate detection, which is an important problem in testing and debugging distributed programs, is very hard due to the combinatorial explosion of the global state space. This paper presents several techniques to tackle the state explosion problem in detecting whether an arbitrary predicate <tmath>$\Phi$</tmath> is true at some consistent global state of a distributed system. We present space efficient on-line algorithms for detecting <tmath>$\Phi$</tmath>. We then improve the performance of our algorithms, both in space and time, by increasing the granularity of the execution step from an event to a sequence of events in each process. </p>