Using redundancies to find errors

作者: Yichen Xie , Dawson Engler

DOI: 10.1145/587051.587060

关键词: Redundancy (engineering)CorrectnessAlgorithmFlaggingError detection and correctionComputer science

摘要: This paper explores the idea that redundant operations, like type errors, commonly flag correctness errors. We experimentally test this by writing and applying four redundancy checkers to Linux operating system, finding many then use these errors demonstrate redundancies, even when harmless, strongly correlate with presence of traditional hard (e.g., null pointer dereferences, unreleased locks). Finally we show how flagging operations gives a way make specifications "fail stop" detecting dangerous omissions.

参考文章(27)
Uday P. Khedker, Data Flow Analysis. The Compiler Design Handbook. pp. 1- 59 ,(2002)
Nicholas Sterling, WARLOCK - A Static Data Race Analysis Tool. USENIX Winter. pp. 97- 106 ,(1993)
Ravi Sethi, Jeffrey D. Ullman, Alfred V. Aho, Compilers: Principles, Techniques, and Tools ,(1986)
Eric A. Brewer, Alexander Aiken, David A. Wagner, Jeffrey S. Foster, A First Step Towards Automated Detection of Buffer Overrun Vulnerabilities. network and distributed system security symposium. ,(2000)
K. Ashcraft, D. Engler, Using programmer-written compiler extensions to catch security holes ieee symposium on security and privacy. pp. 143- 159 ,(2002) , 10.1109/SECPRI.2002.1004368
Stefan Savage, Michael Burrows, Greg Nelson, Patrick Sobalvarro, Thomas Anderson, Eraser: a dynamic data race detector for multithreaded programs ACM Transactions on Computer Systems. ,vol. 15, pp. 391- 411 ,(1997) , 10.1145/265924.265927
J.C. Huang, Detection of Data Flow Anomaly Through Program Instrumentation IEEE Transactions on Software Engineering. ,vol. SE-5, pp. 226- 236 ,(1979) , 10.1109/TSE.1979.234184
Cormac Flanagan, K. Rustan M. Leino, Mark Lillibridge, Greg Nelson, James B. Saxe, Raymie Stata, Extended static checking for Java Proceedings of the ACM SIGPLAN 2002 Conference on Programming language design and implementation - PLDI '02. ,vol. 37, pp. 234- 245 ,(2002) , 10.1145/512529.512558
Robert DeLine, Manuel Fähndrich, Enforcing high-level protocols in low-level software Proceedings of the ACM SIGPLAN 2001 conference on Programming language design and implementation - PLDI '01. ,vol. 36, pp. 59- 69 ,(2001) , 10.1145/378795.378811
Peter J. Downey, Ravi Sethi, Robert Endre Tarjan, Variations on the Common Subexpression Problem Journal of the ACM. ,vol. 27, pp. 758- 771 ,(1980) , 10.1145/322217.322228