MDAT: Multithreading Debugging And Testing

Contributed by This page authored by Eric Larson, Seattle University. MDAT was created by Eric Larson and Rochelle Palting, Seattle University. (

MDAT is a multithreaded testing and debugging infrastructure designed for students learning to program with multiple threads. MDAT automatically generates random schedules to allow students to more thoroughly test their programs. The design of MDAT takes full control over the scheduling allowing a failing run to be reproduced. To assist debugging, MDAT includes an output trace that shows the status of all threads, locks, and semaphores in the program and has an interactive mode that allows students to try out their own schedules.

PPP Characteristics

Languages Supported: C++, C
OS Compatibility: Linux

Context of Use

MDAT is designed for students learning how to write multithreaded and concurrent programs. It is especially geared toward classical synchronization problems commonly found in OS course.



Comment? Start the discussion about MDAT: Multithreading Debugging And Testing