Skip to main content

2017 | OriginalPaper | Buchkapitel

4. Automated Reproduction and Analysis of Bugs in Embedded Software

verfasst von : Hanno Eichelberger, Thomas Kropf, Jürgen Ruf, Wolfgang Rosenstiel

Erschienen in: Embedded Software Verification and Debugging

Verlag: Springer New York

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

search-config
loading …

Abstract

Embedded systems are used everywhere in our daily lives. About 90% of the produced microprocessors are used in embedded systems. Embedded systems get more and more dominated by software. Bugs remain in the software and can often be observed for the first time only in late development phases. It is difficult to reproduce bugs in embedded systems based on test reports. Our proposed automated bug reproduction concept is capable of handling sensor inputs as well as thread schedules. It reduces the manual effort while debugging a reproduced bug by applying dynamic verification during replay. This chapter shows the implementation of assertions and presents anomaly detection techniques to locate the root-causes of bugs. Anomalies can be detected by comparing executions which cause the bug with executions which do not cause the bug. Interferences between two executions which can be compared have to be detected. Using partitioning techniques, we explain coverage-based analysis and metrics as well as invariant-based analysis. The monitoring of the software for these analyses may cause a high overhead and thus may result in long monitoring times. Therefore, we show how monitoring can be accelerated by hierarchical refinement. Most of the available automated bug reproduction and dynamic verification tools are only applicable on specific platforms. Debugging tools, like the GDB, are usually the first tools which are available for new embedded platforms. Therefore, our tool is implemented based on the GDB. We present a tool for automated bug reproduction and efficient dynamic verification implemented with a debugger tool.

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 "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
1
Status July 2016
 
Literatur
2.
Zurück zum Zitat Abreu R (2009) Spectrum-based fault localization in embedded software. PhD thesis, University Delft Abreu R (2009) Spectrum-based fault localization in embedded software. PhD thesis, University Delft
3.
Zurück zum Zitat Amiar A, Delahaye M, Falcone Y, du Bousquet L (2013) Fault localization in embedded software based on a single cyclic trace. In: ISSRE ’13: proceedings of the 24th international automated reproduction and analysis of bugs in embedded software 39 symposium on software reliability engineering. IEEE, pp 148–157 Amiar A, Delahaye M, Falcone Y, du Bousquet L (2013) Fault localization in embedded software based on a single cyclic trace. In: ISSRE ’13: proceedings of the 24th international automated reproduction and analysis of bugs in embedded software 39 symposium on software reliability engineering. IEEE, pp 148–157
4.
Zurück zum Zitat Anderson P (2008) The use and limitations of static-analysis tools to improve software quality. CrossTalk J Defence Softw Eng 42(4):18–21 Anderson P (2008) The use and limitations of static-analysis tools to improve software quality. CrossTalk J Defence Softw Eng 42(4):18–21
5.
Zurück zum Zitat Anvik J, Hiew L, Murphy GC (2006) Who should fix this bug? In: ICSE ’06: proceedings of the 28th international conference on software engineering. ACM, pp 361–370 Anvik J, Hiew L, Murphy GC (2006) Who should fix this bug? In: ICSE ’06: proceedings of the 28th international conference on software engineering. ACM, pp 361–370
6.
Zurück zum Zitat Barringer H, Havelund K (2011) Tracecontract: a scala dsl for trace analysis. In: FM ’11: proceedings of the 17th international symposium on formal methods. Springer, pp 57–72 Barringer H, Havelund K (2011) Tracecontract: a scala dsl for trace analysis. In: FM ’11: proceedings of the 17th international symposium on formal methods. Springer, pp 57–72
7.
Zurück zum Zitat Burger M, Zeller A (2011) Minimizing reproduction of software failures. In: Proceedings of 2011 international symposium on software testing and analysis, pp 221–231 Burger M, Zeller A (2011) Minimizing reproduction of software failures. In: Proceedings of 2011 international symposium on software testing and analysis, pp 221–231
8.
Zurück zum Zitat Charette RN (2009) This car runs on code. IEEE Spectr 21(6) Charette RN (2009) This car runs on code. IEEE Spectr 21(6)
9.
Zurück zum Zitat Dallmeier V, Lindig C, Zeller A (2005) Lightweight bug localization with ample. In: AADEBUG ’05: proceedings of the sixth international symposium on automated analysis-driven debugging. ACM, pp 99–104 Dallmeier V, Lindig C, Zeller A (2005) Lightweight bug localization with ample. In: AADEBUG ’05: proceedings of the sixth international symposium on automated analysis-driven debugging. ACM, pp 99–104
10.
Zurück zum Zitat Dovgalyuk P (2012) Deterministic replay of system’s execution with multi-target qemu simulator for dynamic analysis and reverse debugging. In: CSMR ’12: proceedings of the 16th European conference on software maintenance and reengineering. IEEE, pp 553–556 Dovgalyuk P (2012) Deterministic replay of system’s execution with multi-target qemu simulator for dynamic analysis and reverse debugging. In: CSMR ’12: proceedings of the 16th European conference on software maintenance and reengineering. IEEE, pp 553–556
11.
Zurück zum Zitat Ebert C, Jones C (2009) Embedded software: facts, figures and future. Computer 42(4):42–52CrossRef Ebert C, Jones C (2009) Embedded software: facts, figures and future. Computer 42(4):42–52CrossRef
12.
Zurück zum Zitat Eichelberger H, Kropf T, Greiner T, Rosenstiel W (2013) Runtime verification driven debugging of replayed errors. In: ICTSS ’13: proceedings of the PhD workshop of ICTSS’13 Eichelberger H, Kropf T, Greiner T, Rosenstiel W (2013) Runtime verification driven debugging of replayed errors. In: ICTSS ’13: proceedings of the PhD workshop of ICTSS’13
13.
Zurück zum Zitat Eichelberger H, Kropf T, Ruf J, Greiner T, Rosenstiel W (2015) Efficient fault localization during replay of embedded software. In: SEAA ’15: proceedings of the 41th euromicro conference series on software engineering and advanced applications. IEEE, pp 43–52 Eichelberger H, Kropf T, Ruf J, Greiner T, Rosenstiel W (2015) Efficient fault localization during replay of embedded software. In: SEAA ’15: proceedings of the 41th euromicro conference series on software engineering and advanced applications. IEEE, pp 43–52
14.
Zurück zum Zitat Eichelberger H, Ruf J, Kropf T, Greiner T, Rosenstiel W (2014) Debugger-based record replay and dynamic analysis for in-vehicle infotainment. In: ICCSA ’14: Proceedings of the 14th international conference on computational science and its applications. Springer, pp 387–401 Eichelberger H, Ruf J, Kropf T, Greiner T, Rosenstiel W (2014) Debugger-based record replay and dynamic analysis for in-vehicle infotainment. In: ICCSA ’14: Proceedings of the 14th international conference on computational science and its applications. Springer, pp 387–401
17.
Zurück zum Zitat Goeders J, Wilton S (2014) Effective fpga debug for high-level synthesis generated circuits. In: FPL ’14: proceedings of the 24th international conference on field programmable logic and applications. IEEE, pp 1–8 Goeders J, Wilton S (2014) Effective fpga debug for high-level synthesis generated circuits. In: FPL ’14: proceedings of the 24th international conference on field programmable logic and applications. IEEE, pp 1–8
18.
19.
Zurück zum Zitat Gomez L, Neamtiu I, Azim T, Millstein T (2013) Reran: timing- and touch-sensitive record and replay for android. In: ICSE ’13: proceedings of the 35th international conference on software engineering. ACM, pp 72–81 Gomez L, Neamtiu I, Azim T, Millstein T (2013) Reran: timing- and touch-sensitive record and replay for android. In: ICSE ’13: proceedings of the 35th international conference on software engineering. ACM, pp 72–81
20.
Zurück zum Zitat Heckeler P, Eichelberger H, Schlich B, Kropf T, Ruf J, Huster S, Burg S, Rosenstiel W (2013) Accelerated model-based robustness testing of state machine implementations. ACM Appl Comput Rev 13(03):50–67CrossRef Heckeler P, Eichelberger H, Schlich B, Kropf T, Ruf J, Huster S, Burg S, Rosenstiel W (2013) Accelerated model-based robustness testing of state machine implementations. ACM Appl Comput Rev 13(03):50–67CrossRef
21.
Zurück zum Zitat Hower D, Hill M (2008) Rerun: exploiting episodes for lightweight memory race recording. In: ISCA ’08: proceedings of the 35th international symposium on computer architecture. ACM/IEEE, pp 265–276 Hower D, Hill M (2008) Rerun: exploiting episodes for lightweight memory race recording. In: ISCA ’08: proceedings of the 35th international symposium on computer architecture. ACM/IEEE, pp 265–276
22.
Zurück zum Zitat Hutchins M, Foster H, Goradia T, Ostrand T (1994) Experiments of the effectiveness of dataflow- and controlflow-based test adequacy criteria. In: ICSE ’94: proceedings of the 16th international conference on software engineering. IEEE, pp 191–200 Hutchins M, Foster H, Goradia T, Ostrand T (1994) Experiments of the effectiveness of dataflow- and controlflow-based test adequacy criteria. In: ICSE ’94: proceedings of the 16th international conference on software engineering. IEEE, pp 191–200
23.
Zurück zum Zitat Jiang B, Long X, Gao X, Liu Z, Chan W (2011) Floma: statistical fault localization for mobile embedded system. In: ICACC ’11: proceedings of the 3rd international conference on advanced computer control. IEEE, pp 396–400 Jiang B, Long X, Gao X, Liu Z, Chan W (2011) Floma: statistical fault localization for mobile embedded system. In: ICACC ’11: proceedings of the 3rd international conference on advanced computer control. IEEE, pp 396–400
25.
Zurück zum Zitat Jones JA, Harrold MJ, Stasko J (2002) Visualization of test information to assist fault localization. In: Proceedings of 2002 international conference on software engineering, pp 467–477 Jones JA, Harrold MJ, Stasko J (2002) Visualization of test information to assist fault localization. In: Proceedings of 2002 international conference on software engineering, pp 467–477
26.
Zurück zum Zitat Joorabchi ME, Mirzaaghaei M, Mesbah A (2014) Works for me! characterizing non- reproducible bug reports. In: MSR ’14: proceedings of the 11th working conference on mining software repositories. IEEE, pp 62–71 Joorabchi ME, Mirzaaghaei M, Mesbah A (2014) Works for me! characterizing non- reproducible bug reports. In: MSR ’14: proceedings of the 11th working conference on mining software repositories. IEEE, pp 62–71
27.
Zurück zum Zitat Laadan O, Viennot N, Nieh J (2010) Transparent, lightweight application execution replay on commodity multiprocessor operating systems. In: SIGMETRICS ’10: proceedings of the 2010 ACM SIGMETRICS international conference on measurement and modeling of computer systems. ACM, pp 155–166 Laadan O, Viennot N, Nieh J (2010) Transparent, lightweight application execution replay on commodity multiprocessor operating systems. In: SIGMETRICS ’10: proceedings of the 2010 ACM SIGMETRICS international conference on measurement and modeling of computer systems. ACM, pp 155–166
28.
Zurück zum Zitat Lee YH, Song YW (2010) Replay debugging for multi-threaded embedded software. In: EUC ’10: proceedings of the 2010 IEEE international conference on embedded and ubiquitous computing. IEEE, pp 15–22 Lee YH, Song YW (2010) Replay debugging for multi-threaded embedded software. In: EUC ’10: proceedings of the 2010 IEEE international conference on embedded and ubiquitous computing. IEEE, pp 15–22
29.
Zurück zum Zitat Leucker M, Schallhart C (2009) A brief account of runtime verification. J Logic Algebraic Program 78(5):293–303CrossRefMATH Leucker M, Schallhart C (2009) A brief account of runtime verification. J Logic Algebraic Program 78(5):293–303CrossRefMATH
30.
31.
Zurück zum Zitat Liu C, Yan X, Yu H, Han J, Yu P (2005) Mining behavior graphs for “backtrace” of noncrashing bugs. In: SDM ’05: proceedings of the 2005 SIAM international conference on data mining Liu C, Yan X, Yu H, Han J, Yu P (2005) Mining behavior graphs for “backtrace” of noncrashing bugs. In: SDM ’05: proceedings of the 2005 SIAM international conference on data mining
32.
Zurück zum Zitat Liu X, Lin W, Pan A, Zhang Z (2007) Wids checker. In: Proceedings of 4th USENIX conference on networked systems design and implementation, pp 257–270 Liu X, Lin W, Pan A, Zhang Z (2007) Wids checker. In: Proceedings of 4th USENIX conference on networked systems design and implementation, pp 257–270
33.
Zurück zum Zitat Maeng J, Kwon JI, Sin MK, Ryu M (2009) Rt-replayer: a record-replay architecture for embedded real-time software debugging. In: SAC ’09: proceedings of the 2009 ACM symposium on applied computing. ACM, pp 1670–1675 Maeng J, Kwon JI, Sin MK, Ryu M (2009) Rt-replayer: a record-replay architecture for embedded real-time software debugging. In: SAC ’09: proceedings of the 2009 ACM symposium on applied computing. ACM, pp 1670–1675
34.
Zurück zum Zitat Patil H, Pereira C, Stallcup M, Lueck G, Cownie J (2010) Pinplay: a framework for deterministic replay and reproducible analysis of parallel programs. In: CGO ’10: proceedings of the 8th international symposium on code generation and optimization. IEEE/ACM, pp 2–11 Patil H, Pereira C, Stallcup M, Lueck G, Cownie J (2010) Pinplay: a framework for deterministic replay and reproducible analysis of parallel programs. In: CGO ’10: proceedings of the 8th international symposium on code generation and optimization. IEEE/ACM, pp 2–11
35.
Zurück zum Zitat Sen K, Kalasapur S, Brutch T, Gibbs S (2013) Jalangi: a selective record-replay and dynamic analysis framework for javascript. In: ESEC/FSE ’13: proceedings of the 9th joint meeting on foundations of software engineering. ACM, pp 488–498 Sen K, Kalasapur S, Brutch T, Gibbs S (2013) Jalangi: a selective record-replay and dynamic analysis framework for javascript. In: ESEC/FSE ’13: proceedings of the 9th joint meeting on foundations of software engineering. ACM, pp 488–498
36.
Zurück zum Zitat Shin H, Endoh Y, Kataoka Y (2007) Arve: aspect-oriented runtime verification environment. In: Proceedings of 2007 runtime verification, pp 87–96 Shin H, Endoh Y, Kataoka Y (2007) Arve: aspect-oriented runtime verification environment. In: Proceedings of 2007 runtime verification, pp 87–96
37.
Zurück zum Zitat Tan L, Liu C, Li Z, Wang X, Zhou Y, Zhai C (2014) Bug characteristics in open source software. Imperical Softw Eng 19(6):1665–1705CrossRef Tan L, Liu C, Li Z, Wang X, Zhou Y, Zhai C (2014) Bug characteristics in open source software. Imperical Softw Eng 19(6):1665–1705CrossRef
38.
Zurück zum Zitat Wu J, Geyer C, Rehg JM (2011) Real-time human detection using contour cues. In: ICRA ’11: proceedings of the 2011 international conference on robotics and automation. IEEE, pp 860–867 Wu J, Geyer C, Rehg JM (2011) Real-time human detection using contour cues. In: ICRA ’11: proceedings of the 2011 international conference on robotics and automation. IEEE, pp 860–867
39.
Zurück zum Zitat Xuan J, Monperrus M (2014) Learning to combine multiple ranking metrics for fault localization. In: ICSME ’14: proceedings of the 30th international conference on software maintenance and evolution. IEEE, pp 191–200 Xuan J, Monperrus M (2014) Learning to combine multiple ranking metrics for fault localization. In: ICSME ’14: proceedings of the 30th international conference on software maintenance and evolution. IEEE, pp 191–200
40.
Zurück zum Zitat Yasushi S (2005) Jockey: a user-space library for record-replay debugging. In: AADEBUG ’05: proceedings of the sixth international symposium on automated analysis-driven debugging. ACM, pp 69–76 Yasushi S (2005) Jockey: a user-space library for record-replay debugging. In: AADEBUG ’05: proceedings of the sixth international symposium on automated analysis-driven debugging. ACM, pp 69–76
41.
Zurück zum Zitat Zeller A (2009) Why programs fail: a guide to systematic debugging, 2nd edn. Morgan Kaufmann Publishers Zeller A (2009) Why programs fail: a guide to systematic debugging, 2nd edn. Morgan Kaufmann Publishers
42.
Zurück zum Zitat Zhang S, Ernst MD (2013) Automated diagnosis of software configuration errors. In: Proceedings of 2013 international conference on software engineering, pp 312–321 Zhang S, Ernst MD (2013) Automated diagnosis of software configuration errors. In: Proceedings of 2013 international conference on software engineering, pp 312–321
43.
Zurück zum Zitat Zuo Z, Khoo SC, Sun C (2014) Efficient predicated bug signature mining via hierarchical instrumentation. In: ISSTA ’14: proceedings of the 2014 international symposium on software testing and analysis. ACM, pp 215–224 Zuo Z, Khoo SC, Sun C (2014) Efficient predicated bug signature mining via hierarchical instrumentation. In: ISSTA ’14: proceedings of the 2014 international symposium on software testing and analysis. ACM, pp 215–224
Metadaten
Titel
Automated Reproduction and Analysis of Bugs in Embedded Software
verfasst von
Hanno Eichelberger
Thomas Kropf
Jürgen Ruf
Wolfgang Rosenstiel
Copyright-Jahr
2017
Verlag
Springer New York
DOI
https://doi.org/10.1007/978-1-4614-2266-2_4

Neuer Inhalt