Skip to main content
Erschienen in: International Journal of Parallel Programming 4/2013

01.08.2013

Graphs for Mining-Based Defect Localization in Multithreaded Programs

verfasst von: Christopher Oßner, Klemens Böhm

Erschienen in: International Journal of Parallel Programming | Ausgabe 4/2013

Einloggen

Aktivieren Sie unsere intelligente Suche, um passende Fachinhalte oder Patente zu finden.

search-config
loading …

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.

Sie haben noch keine Lizenz? Dann Informieren Sie sich jetzt über unsere Produkte:

Springer Professional "Wirtschaft+Technik"

Online-Abonnement

Mit Springer Professional "Wirtschaft+Technik" erhalten Sie Zugriff auf:

  • über 102.000 Bücher
  • über 537 Zeitschriften

aus folgenden Fachgebieten:

  • Automobil + Motoren
  • Bauwesen + Immobilien
  • Business IT + Informatik
  • Elektrotechnik + Elektronik
  • Energie + Nachhaltigkeit
  • Finance + Banking
  • Management + Führung
  • Marketing + Vertrieb
  • Maschinenbau + Werkstoffe
  • Versicherung + Risiko

Jetzt Wissensvorsprung sichern!

Springer Professional "Wirtschaft"

Online-Abonnement

Mit Springer Professional "Wirtschaft" erhalten Sie Zugriff auf:

  • über 67.000 Bücher
  • über 340 Zeitschriften

aus folgenden Fachgebieten:

  • Bauwesen + Immobilien
  • Business IT + Informatik
  • Finance + Banking
  • Management + Führung
  • Marketing + Vertrieb
  • Versicherung + Risiko




Jetzt Wissensvorsprung sichern!

Springer Professional "Technik"

Online-Abonnement

Mit Springer Professional "Technik" erhalten Sie Zugriff auf:

  • über 67.000 Bücher
  • über 390 Zeitschriften

aus folgenden Fachgebieten:

  • Automobil + Motoren
  • Bauwesen + Immobilien
  • Business IT + Informatik
  • Elektrotechnik + Elektronik
  • Energie + Nachhaltigkeit
  • Maschinenbau + Werkstoffe




 

Jetzt Wissensvorsprung sichern!

Fußnoten
2
In this paper we use the terms processor core and processor interchangeably.
 
Literatur
1.
Zurück zum Zitat Bond, M.D., Coons, K.E., McKinley, K.S.: Pacer: proportional detection of data races. In: PLDI (2010) Bond, M.D., Coons, K.E., McKinley, K.S.: Pacer: proportional detection of data races. In: PLDI (2010)
2.
Zurück zum Zitat Copty, S., Ur, S.: Multi-threaded testing with AOP is easy, and it finds bugs!. In: 11th Int. Euro-Par Conf. (2005) Copty, S., Ur, S.: Multi-threaded testing with AOP is easy, and it finds bugs!. In: 11th Int. Euro-Par Conf. (2005)
3.
Zurück zum Zitat Di Fatta, G., Leue, S., Stegantova, E.: Discriminative pattern mining in software fault detection. In: 3rd Int. Workshop on Software Quality Assurance (SOQUA) (2006) 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.
Zurück zum Zitat Edelstein, O., et al.: Framework for testing multi-threaded java programs. Concurr. Comput. Pract. Exp. 15:485–499 (2003) Edelstein, O., et al.: Framework for testing multi-threaded java programs. Concurr. Comput. Pract. Exp. 15:485–499 (2003)
5.
Zurück zum Zitat Eichinger, F., Böhm, K., Huber, M.: Mining edge-weighted Call graphs to localise software bugs. In: ECML PKDD (2008) Eichinger, F., Böhm, K., Huber, M.: Mining edge-weighted Call graphs to localise software bugs. In: ECML PKDD (2008)
6.
Zurück zum Zitat Eichinger, F., et al.: Localizing defects in multithreaded programs by mining dynamic call graphs. In: TAIC PART (2010) Eichinger, F., et al.: Localizing defects in multithreaded programs by mining dynamic call graphs. In: TAIC PART (2010)
7.
Zurück zum Zitat Eichinger, F., Oßner, C., Böhm, K.: Scalable software-defect localisation by hierarchical mining of dynamic call graphs. In: SDM (2011) Eichinger, F., Oßner, C., Böhm, K.: Scalable software-defect localisation by hierarchical mining of dynamic call graphs. In: SDM (2011)
8.
Zurück zum Zitat Engler, D., Ashcraft, K.: Racerx: effective, static detection of race conditions and deadlocks. SIGOPS 37:237–252 (2003) Engler, D., Ashcraft, K.: Racerx: effective, static detection of race conditions and deadlocks. SIGOPS 37:237–252 (2003)
9.
Zurück zum Zitat Eytani, Y., Ur, S.: Compiling a benchmark of documented multi-threaded bugs. In: Proc. of the Parallel and Distributed Processing Symposium (2004) Eytani, Y., Ur, S.: Compiling a benchmark of documented multi-threaded bugs. In: Proc. of the Parallel and Distributed Processing Symposium (2004)
10.
Zurück zum Zitat Farchi, E., Nir, Y., Ur, S.: Concurrent bug patterns and how to test them. In: Proc. Int. Parallel and Distributed Processing Symposium (IPDPS) (2003) 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.
Zurück zum Zitat Flanagan, C., et al.: Extended static checking for java. In: PLDI (2002) Flanagan, C., et al.: Extended static checking for java. In: PLDI (2002)
12.
Zurück zum Zitat Flanagan, C., Freund, S.N.: Fasttrack: efficient and precise dynamic race detection. In: Hind, M., Diwan, A. (eds.) PLDI, pp. 121–133. ACM (2009) 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.
Zurück zum Zitat 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 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
14.
Zurück zum Zitat Gray, J.: Why do computers stop and what can be done about it?. In: Symposium on Reliability in Distributed Software and Database Systems (1986) 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.
Zurück zum Zitat Hutchins, M., et al.: Experiments on the effectiveness of dataflow- and controlflow-based test adequacy criteria. In: Int. Conf. on Software Engineering (ICSE) (1994) 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.
Zurück zum Zitat 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) 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)
17.
Zurück zum Zitat 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) 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.
Zurück zum Zitat Jones, J., Harrold, M., Stasko, J.: Visualization of test information to assist fault localization. In: 24th Int. Conf. on Software Engineering (ICSE) (2002) Jones, J., Harrold, M., Stasko, J.: Visualization of test information to assist fault localization. In: 24th Int. Conf. on Software Engineering (ICSE) (2002)
19.
Zurück zum Zitat Le Goues, C., et al.: A systematic study of automated program repair: fixing 55 out of 105 bugs for 8 each. In: ICSE (2012) 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.
Zurück zum Zitat Liu, C., et al.: Mining behavior graphs for “Backtrace” of Noncrashing Bugs. In: SDM (2005) Liu, C., et al.: Mining behavior graphs for “Backtrace” of Noncrashing Bugs. In: SDM (2005)
21.
Zurück zum Zitat Lu, S., et al.: Learning from mistakes—a comprehensive study on real world concurrency bug characteristics. SIGARCH 36:329–339 (2008) Lu, S., et al.: Learning from mistakes—a comprehensive study on real world concurrency bug characteristics. SIGARCH 36:329–339 (2008)
22.
Zurück zum Zitat 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) 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.
Zurück zum Zitat Musuvathi, M., Qadeer, S., Ball, T.: CHESS: A Systematic Testing Tool for Concurrent Software. Technical report, Microsoft Research (2007) Musuvathi, M., Qadeer, S., Ball, T.: CHESS: A Systematic Testing Tool for Concurrent Software. Technical report, Microsoft Research (2007)
24.
Zurück zum Zitat Nagappan, N., Ball, T., Zeller, A.: Mining metrics to predict component failures. In: Proc. of the Int. Conf. on Software Engineering (ICSE) (2006) Nagappan, N., Ball, T., Zeller, A.: Mining metrics to predict component failures. In: Proc. of the Int. Conf. on Software Engineering (ICSE) (2006)
25.
Zurück zum Zitat O’Callahan, R., Choi, J.: Hybrid dynamic data race detection. SIGPLAN Notices 38:167–178 (2003) O’Callahan, R., Choi, J.: Hybrid dynamic data race detection. SIGPLAN Notices 38:167–178 (2003)
26.
Zurück zum Zitat Rungta, N., Mercer, E.G.: Clash of the titans: tools and techniques for hunting bugs in concurrent programs. In: PADTAD (2009) Rungta, N., Mercer, E.G.: Clash of the titans: tools and techniques for hunting bugs in concurrent programs. In: PADTAD (2009)
27.
Zurück zum Zitat Savage, S., et al.: Eraser: a dynamic data race detector for multithreaded programs. ACM Trans. Comput. Syst. 15:391–411 (1997) Savage, S., et al.: Eraser: a dynamic data race detector for multithreaded programs. ACM Trans. Comput. Syst. 15:391–411 (1997)
28.
Zurück zum Zitat Vermeulen, A.L., et al.: In: Vermeulen, A.L. (ed.) The Elements of Java Style. Cambridge University Press (2000) Vermeulen, A.L., et al.: In: Vermeulen, A.L. (ed.) The Elements of Java Style. Cambridge University Press (2000)
29.
Zurück zum Zitat Yan, X., Han, J.: CloseGraph: mining closed frequent graph patterns. In: KDD (2003) Yan, X., Han, J.: CloseGraph: mining closed frequent graph patterns. In: KDD (2003)
30.
Zurück zum Zitat Zeller, A.: Why Programs Fail: A Guide to Systematic Debugging. Morgan Kaufmann (2009) Zeller, A.: Why Programs Fail: A Guide to Systematic Debugging. Morgan Kaufmann (2009)
Metadaten
Titel
Graphs for Mining-Based Defect Localization in Multithreaded Programs
verfasst von
Christopher Oßner
Klemens Böhm
Publikationsdatum
01.08.2013
Verlag
Springer US
Erschienen in
International Journal of Parallel Programming / Ausgabe 4/2013
Print ISSN: 0885-7458
Elektronische ISSN: 1573-7640
DOI
https://doi.org/10.1007/s10766-012-0237-2