Skip to main content
Log in

Graphs for Mining-Based Defect Localization in Multithreaded Programs

  • Published:
International Journal of Parallel Programming Aims and scope Submit manuscript

Abstract

Trends in modern multicore architecture design requires software developers to develop and debug multithreaded programs. Consequently, software developers must face new challenges because of bug patterns occurring at runtime and due to the non-deterministic behavior of multi-threaded program executions. This calls for new defect-localization techniques. There has been much work in the field of defect localization for sequential programs on the one side and on the localization of specific multithreading bugs on the other side, but we are not aware of any general technique for multithreaded programs. This paper proposes such an approach. It generalizes data mining-based defect-localization techniques for sequential programs. The techniques work by analyzing call graphs. More specifically, we propose new graph representations of multithreaded program executions as well as two mining-based localization approaches based on these representations. Our evaluation shows that our technique yields good results and is able to find defects that other approaches cannot localize.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Institutional subscriptions

Fig. 1
Fig. 2

Similar content being viewed by others

Notes

  1. http://www2.informatik.uni-erlangen.de/research/ParSeMiS.

  2. In this paper we use the terms processor core and processor interchangeably.

References

  1. Bond, M.D., Coons, K.E., McKinley, K.S.: Pacer: proportional detection of data races. In: PLDI (2010)

  2. Copty, S., Ur, S.: Multi-threaded testing with AOP is easy, and it finds bugs!. In: 11th Int. Euro-Par Conf. (2005)

  3. Di Fatta, G., Leue, S., Stegantova, E.: Discriminative pattern mining in software fault detection. In: 3rd Int. Workshop on Software Quality Assurance (SOQUA) (2006)

  4. Edelstein, O., et al.: Framework for testing multi-threaded java programs. Concurr. Comput. Pract. Exp. 15:485–499 (2003)

    Google Scholar 

  5. Eichinger, F., Böhm, K., Huber, M.: Mining edge-weighted Call graphs to localise software bugs. In: ECML PKDD (2008)

  6. Eichinger, F., et al.: Localizing defects in multithreaded programs by mining dynamic call graphs. In: TAIC PART (2010)

  7. Eichinger, F., Oßner, C., Böhm, K.: Scalable software-defect localisation by hierarchical mining of dynamic call graphs. In: SDM (2011)

  8. Engler, D., Ashcraft, K.: Racerx: effective, static detection of race conditions and deadlocks. SIGOPS 37:237–252 (2003)

    Google Scholar 

  9. Eytani, Y., Ur, S.: Compiling a benchmark of documented multi-threaded bugs. In: Proc. of the Parallel and Distributed Processing Symposium (2004)

  10. Farchi, E., Nir, Y., Ur, S.: Concurrent bug patterns and how to test them. In: Proc. Int. Parallel and Distributed Processing Symposium (IPDPS) (2003)

  11. Flanagan, C., et al.: Extended static checking for java. In: PLDI (2002)

  12. Flanagan, C., Freund, S.N.: Fasttrack: efficient and precise dynamic race detection. In: Hind, M., Diwan, A. (eds.) PLDI, pp. 121–133. ACM (2009)

  13. Garey, M.R., Johnson, D.S.: Computers and Intractability: A Guide to the Theory of NP-Completeness. W. H. Freeman, San Francisco, CA (1979)

    MATH  Google Scholar 

  14. Gray, J.: Why do computers stop and what can be done about it?. In: Symposium on Reliability in Distributed Software and Database Systems (1986)

  15. Hutchins, M., et al.: Experiments on the effectiveness of dataflow- and controlflow-based test adequacy criteria. In: Int. Conf. on Software Engineering (ICSE) (1994)

  16. Jalan, R., Kejariwal, A.: Trin-trin: Who’s calling? a pin-based dynamic call graph extraction framework. International Journal of Parallel Programming 40:410–442 (2012)

    Google Scholar 

  17. Jannesari, A., et al.: Dynamic data race detection for correlated variables. In: Proc. of the Int. Conf. on Algorithms and Architectures for Parallel Processing (2011)

  18. Jones, J., Harrold, M., Stasko, J.: Visualization of test information to assist fault localization. In: 24th Int. Conf. on Software Engineering (ICSE) (2002)

  19. Le Goues, C., et al.: A systematic study of automated program repair: fixing 55 out of 105 bugs for 8 each. In: ICSE (2012)

  20. Liu, C., et al.: Mining behavior graphs for “Backtrace” of Noncrashing Bugs. In: SDM (2005)

  21. Lu, S., et al.: Learning from mistakes—a comprehensive study on real world concurrency bug characteristics. SIGARCH 36:329–339 (2008)

    Google Scholar 

  22. Luo, Z., Das, R., Qi, Y.: Multicore sdk: a practical and efficient deadlock detector for real-world applications. In: IEEE Fourth Int. Conf. on Software Testing, Verification and Validation (ICST), pp. 309–318, March (2011)

  23. Musuvathi, M., Qadeer, S., Ball, T.: CHESS: A Systematic Testing Tool for Concurrent Software. Technical report, Microsoft Research (2007)

  24. Nagappan, N., Ball, T., Zeller, A.: Mining metrics to predict component failures. In: Proc. of the Int. Conf. on Software Engineering (ICSE) (2006)

  25. O’Callahan, R., Choi, J.: Hybrid dynamic data race detection. SIGPLAN Notices 38:167–178 (2003)

    Google Scholar 

  26. Rungta, N., Mercer, E.G.: Clash of the titans: tools and techniques for hunting bugs in concurrent programs. In: PADTAD (2009)

  27. Savage, S., et al.: Eraser: a dynamic data race detector for multithreaded programs. ACM Trans. Comput. Syst. 15:391–411 (1997)

    Google Scholar 

  28. Vermeulen, A.L., et al.: In: Vermeulen, A.L. (ed.) The Elements of Java Style. Cambridge University Press (2000)

  29. Yan, X., Han, J.: CloseGraph: mining closed frequent graph patterns. In: KDD (2003)

  30. Zeller, A.: Why Programs Fail: A Guide to Systematic Debugging. Morgan Kaufmann (2009)

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Christopher Oßner.

Rights and permissions

Reprints and permissions

About this article

Cite this article

Oßner, C., Böhm, K. Graphs for Mining-Based Defect Localization in Multithreaded Programs. Int J Parallel Prog 41, 570–593 (2013). https://doi.org/10.1007/s10766-012-0237-2

Download citation

  • Received:

  • Accepted:

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s10766-012-0237-2

Keywords

Navigation