Detecting Data Races in Sequential Programs with DIOTA

  • Michiel Ronsse
  • Jonas Maebe
  • Koen De Bosschere
Part of the Lecture Notes in Computer Science book series (LNCS, volume 3149)


In this paper we show that data races, a type of bug that generally only causes havoc in parallel programs, can also occur in sequential programs that use signal handlers. Fortunately, it turns out that adapting existing data race detectors to detect such bugs for sequential programs is straightforward. We present such a tool, and we describe the modifications that were necessary to detect data races in sequential programs. The experimental evaluation revealed a number of data races in some widely used programs.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Netzer, R.H., Miller, B.P.: What are race conditions? some issues and formalizations. ACM Letters on Programming Languages and Systems (1992)Google Scholar
  2. 2.
    Savage, S., Burrows, M., Nelson, G., Sobalvarro, P., Anderson, T.: Eraser: A dynamic data race detector for multithreaded programs. ACM Transactions on Computer Systems 15, 391–411 (1997)CrossRefGoogle Scholar
  3. 3.
    Ronsse, M., De Bosschere, K.: An on-the-fly Data Race Detector for RECPLAY, a Record/Replay System for Parallel Programs. In: Proceedings of the 16th ACM Symposium on Operating Systems Principles, Saint-Malo (1997) (on CD)Google Scholar
  4. 4.
    Stevens, W.R.: Advanced Programming in the UNIX Environment. Addison-Wesley, Reading (1993)Google Scholar
  5. 5.
    Zalewski, M.: Delivering signals for fun and profit. RAZOR, BindView Corporation (2001),
  6. 6.
    Maebe, J., Ronsse, M., De Bosschere, K.: DIOTA: Dynamic instrumentation, optimization and transformation of applications. In: Charney, M., Kaeli, D. (eds.) Compendium of Workshops and Tutorials Held in conjunction with PACT 2002: Intl. Conference on Parallel Architectures and Compilation Techniques, Charlottesville, VA (2002)Google Scholar
  7. 7.
    Ronsse, M., De Bosschere, K.: Non-intrusive detection of synchronization errors using execution replay. Automated Software Engineering 9, 95–121 (2002)MATHCrossRefGoogle Scholar
  8. 8.
    Mattern, F.: Virtual time and global states of distributed systems. In: Cosnard, Q., Raynal, R. (eds.) Proceedings of the Intl. Workshop on Parallel and Distributed Algorithms, pp. 215–226. Elsevier Science Publishers B.V., North-Holland (1989)Google Scholar
  9. 9.
    Fidge, C.J.: Logical time in distributed computing systems. IEEE Computer 24, 28–33 (1991)Google Scholar
  10. 10.
    Lamport, L.: Time, clocks, and the ordering of events in a distributed system. Communications of the ACM 21, 558–565 (1978)MATHCrossRefGoogle Scholar
  11. 11.
    Christiaens, M., De Bosschere, K.: Accordion clocks: Logical clocks for data race detection. In: Sakellariou, R., Keane, J.A., Gurd, J.R., Freeman, L. (eds.) Euro-Par 2001. LNCS, vol. 2150, pp. 494–503. Springer, Heidelberg (2001)CrossRefGoogle Scholar
  12. 12.
    Ronsse, M., Stougie, B., Maebe, J., De Bosschere, K.: An efficient data race detector backend for diota. In: Proceedings of the International Conference ParCo 2003 (2004) (to be published)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2004

Authors and Affiliations

  • Michiel Ronsse
    • 1
  • Jonas Maebe
    • 1
  • Koen De Bosschere
    • 1
  1. 1.Department ELISGhent UniversityBelgium

Personalised recommendations