The paper describes the main stages of the development process of the DIWIDE distributed debugger. After the description of the predecessors of DIWIDE the paper focuses on the macrostep technique. Recent development enables the user to systematically debug and test message passing parallel programs. The adoption of the macrostep technique raised some unforeseen problems coming from the requirements defined by the concept of collective breakpoints and macrostep execution. The modifications of the macrostep theory, solutions for controlling problems and some additional problems are detailed as well. An algorithm is shown how the macrostep technique is realised and the systematic debugging method supported by monitoring system is also described in this paper.