ABSTRACT
This paper presents an approach to extract high-level patterns from traces of programmable logic control (PLC) programs recorded with a deterministic replay debugging tool. Our deterministic replay debugging works by recording an application run in real-time with minimal overhead so that it can be reproduced afterwards. In a subsequent phase, the application is replayed in offline mode to produce a more detailed trace log with additional information about the application run. A software developer can replay the program in a debugger and use debugger features to analyze the program run and locate errors. However, due to the vast amount of data and the complex behavior of reactive control programs, a normal debugger is usually only a poor support in comprehending the program behavior. In this paper we present an approach to analyze recorded program runs of PLC applications. We present a technology to visualize the reactive behavior of a program run and find recurring high-level execution patterns in long-running applications. We give an overview of possible application scenarios to support program comprehension, testing, and debugging.
- }}IEC, IEC 61331-3, Programmable controllers - Part 3: Programming languages. http://www.iec.ch/, 2003.Google Scholar
- }}Prähofer, H., Schatz, R., Wirth, C., and Mössenböck, H.: Deterministic Replay Debugging of IEC 61131--3 PLC Programs. 8th IEEE International Conference on Industrial Informatics, July 13--16, 2010, Osaka, Japan (accepted).Google Scholar
- }}Thane, H., Sundmark, D., Huselius, J., and Pettersson, A. 2003. Replay Debugging of Real-Time Systems Using Time Machines. In Proceedings of the 17th international Symposium on Parallel and Distributed Processing (April 22--26, 2003). IEEE Computer Society, 288.2. Google ScholarDigital Library
- }}Orso, A. and Kennedy, B. 2005. Selective capture and replay of program executions. SIGSOFT Softw. Eng. Notes 30, 4 (Jul. 2005), 1--7. DOI= http://doi.acm.org/10.1145/1082983.1083251. Google ScholarDigital Library
- }}Damerau, F. J. 1964. A technique for computer detection and correction of spelling errors. Commun. ACM 7, 3 (Mar. 1964), 171--176. DOI= http://doi.acm.org/10.1145/363958.363994 Google ScholarDigital Library
- }}Craig G. Nevill-Manning and Ian H. Witten. 1997. Identifying Hierarchical Structure in Sequences: A lineartime algorithm, Journal of Artificial Intelligence Research 7 (1997), pp. 67--82. Google ScholarDigital Library
- }}Lang, K. J., Pearlmutter, B. A., and Price, R. A. 1998. Results of the Abbadingo One DFA Learning Competition and a New Evidence-Driven State Merging Algorithm. 4th international Colloquium on Grammatical inference (July 12--14, 1998). Lecture Notes In Computer Science, vol. 1433. Springer-Verlag, London, 1--12. Google ScholarDigital Library
- }}Dupont, P., Lambeau, B., Damas, C., and van Lamsweerde, A. 2008. The QSM Algorithm and its Application to Software Behavior Model Induction. Appl. Artif. Intell. 22, 1--2 (Jan. 2008), 77--115. DOI= http://dx.doi.org/10.1080/08839510701853200 Google ScholarDigital Library
- }}De Pauw, W., Krasikov, S., and Morar, J. F. 2006. Execution patterns for visualizing web services. In Proceedings of the 2006 ACM Symposium on Software Visualization (Brighton, United Kingdom, September 04--05, 2006). SoftVis '06. ACM, New York, NY, 37--45. DOI= http://doi.acm.org/10.1145/1148493.1148499M Google ScholarDigital Library
- }}Walkinshaw, N., Bogdanov, K., Holcombe, M., and Salahuddin, S. 2007. Reverse Engineering State Machines by Interactive Grammar Inference. In Proceedings of the 14th Working Conference on Reverse Engineering (October 28--31, 2007). WCRE. IEEE Computer Society, Washington, DC, 209--218. DOI= http://dx.doi.org/10.1109/WCRE.2007.45 Google ScholarDigital Library
- }}Reiss, S. P. and Renieris, M. 2001. Encoding program executions. In Proceedings of the 23rd international Conference on Software Engineering (Toronto, Ontario, Canada, May 12--19, 2001). International Conference on Software Engineering. IEEE Computer Society, Washington, DC, 221--230. Google ScholarDigital Library
- }}I. Zayour and T. C. Lethbridge, "A Cognitive and User Centric Based Approach For Reverse Engineering Tool Design", CASCON, 2000 Google ScholarDigital Library
- }}Jerding, D. F., Stasko, J. T., and Ball, T. 1997. Visualizing interactions in program executions. In Proceedings of the 19th international Conference on Software Engineering (Boston, Massachusetts, United States, May 17--23, 1997). ICSE '97. ACM, New York, NY, 360--370. DOI= http://doi.acm.org/10.1145/253228.253356 Google ScholarDigital Library
- }}Abdelwahab Hamou-Lhadj and Timothy C. Lethbridge: An Effcient Algorithm for Detecting Patterns in Traces of Procedure Calls. ICSE Workshop on Dynamic Analysis, ICSE'03, Portland, Oregon, May 3--11, 2003.Google Scholar
Index Terms
- Detection of high-level execution patterns in reactive behavior of control programs
Recommendations
Runtime exception detection in Java programs using symbolic execution
Most of the runtime failures of a software system can be revealed during test execution only, which has a very high cost. In Java programs, runtime failures are manifested as unhandled runtime exceptions.
In this paper we present an approach and tool ...
Analyzing Long-Running Controller Applications for Specification Violations Based on Deterministic Replay
SEAA '12: Proceedings of the 2012 38th Euromicro Conference on Software Engineering and Advanced ApplicationsDeterministic replay debugging is a technique aimed at finding and debugging software failures occurring in field operation that are usually hard to reproduce. With deterministic replay debugging a software run is recorded, so that it can be reproduced ...
Finding Atomicity-Violation Bugs through Unserializable Interleaving Testing
Multicore hardware is making concurrent programs pervasive. Unfortunately, concurrent programs are prone to bugs. Among different types of concurrency bugs, atomicity violations are common and important. How to test the interleaving space and expose ...
Comments