We present a framework for computing dynamic slices of concurrent programs using a form of dependence graph as intermediate
representations. We introduce the notion of a Dynamic Program Dependence Graph (DPDG) to represent various intra- and interprocess dependences of concurrent programs. We construct this graph through three hierarchical stages. Besides being intuitive,
this approach also enables us to display slices at different levels of abstraction. Wehave considered interprocess communication
using both shared memory and message passing mechanisms.