CS598YYZ Fall 2005

Reliable and Robust Software Systems

Home
Overview
Schedule
Policies
CritiqueAssignment
Projects
Topic Matrix
Reading List

Dynamic Detection

Feng Qin, Shan Lu and Yuanyuan Zhou. SafeMem: Exploiting ECC-Memory for Detecting Memory Leaks and Memory Corruption During Production Runs. The Proceedings of the 11th International Symposium on High-Performance Computer Architecture (HPCA'05) ,  Feb, 2005.

Pin Zhou, Wei Liu, Fei Long, Shan Lu, Feng Qin, Yuanyuan Zhou, Sam Midkiff and Josep Torrellas. AccMon: Automatically Detecting Memory-Related Bugs via Program Counter-based Invariants. The Proceedings of 37th Annual IEEE/ACM International Symposium ON Micro-architecture (Micro'04), December, 2004

Pin Zhou, Feng Qin, Wei Liu, Yuanyuan Zhou and Josep Torrellas. iWatcher: Efficient Architecture Support for Software Debugging. Proceedings of the 31st annual International Symposium on Computer Architecture (ISCA'04), June, 2004.

Rob Johnson, David Wagner. Finding User/Kernel Pointer Bugs With Type Inference. in USENIX Security Symposium. August, 2004

Kumar Avijit, Prateek Gupta, Deepak Gupta. TIED, LibsafePlus: Tools for Dynamic Buffer Overflow Protection. in USENIX Security Symposium. August, 2004

Nick L. Petroni, Jr., Timothy Fraser, Jesus Molina, William A. Arbaugh. Copilot - a Coprocessor-based Kernel Runtime Integrity Monitor. in USENIX Security Symposium. August, 2004

Yuriy Brun and Michael Ernst. Finding Latent Code Errors via Machine Learning over Program Executions. in ICSE. May, 2004

B. Liblit and A. Aiken and A. Zheng and M. Jordan. Bug isolation via remote program sampling. 2003. in Proceedings of ACM SIGPLAN Conf. on Programming Language Design and Implementation, pages (null).

Sudheendra Hangal and Monica S. Lam. Tracking Down Software Bugs Using Automatic Anomaly Detection. 2002. in Proceedings of the International Conference on Software Engineering, pages 291-301.

Julian Seward and Nick Nethercote. Valgrind, an open-source memory debugger for x86-GNU/Linux. (null), (null):(null).

Stefan Savage and Michael Burrows and Greg Nelson and Patrick Sobalvarro and Thomas Anderson. Eraser: A Dynamic Data Race Detector for Multithreaded Programs. 1997. ACM Transactions on Computer Systems, 15(4):391-411.

Todd M. Austin and Scott E. Breach and Gurindar S. Sohi. Efficient Detection of All Pointer and Array Access Errors. 1994. in SIGPLAN Conference on Programming Language Design and Implementation, pages 290-301.

R. Hastings and B. Joyce. Purify: Fast Detection of Memory Leaks and Access Errors. 1991. in Proc.fthe Winter 1992 USENIX Conference, pages 125-138. San Francisco, California.

Michael D. Ernst and Jake Cockrell and William G. Griswold and David Notkin. Dynamically Discovering Likely Program Invariants to Support Program Evolution. 1999. in International Conference on Software Engineering, pages 213-224.

R. Hasting and B. Joyce. Purify: Fast detection of memory leaks and access errors. In Winter USENIX, Jan. 1992.

 

Static Analysis

Zhenmin Li and Yuanyuan Zhou.  PR-Miner: Automatically Extracting Implicit Programming Rules and Detecting Violations in Large Software Code. To Appear in the 13th ACM SIGSOFT Symposium on the Foundations of Software Engineering (FSE'05), Sept 2005

Zhenmin Li, Shan Lu, Suvda Myagmar and Yuanyuan Zhou. CP-Miner: A Tool for Finding Copy-paste and Related Bugs in Operating System Code.  The Proceedings of the Sixth Symposium on Operating System Design and Implementation (OSDI'04), December, 2004

J. Condit, M. Harren, S. McPeak, G. C. Necula, and W. Weimer. CCured in the real world. In PLDI, Jun 2003.

C. Cowan, C. Pu, D. Maier, J. Walpole, P. Bakke, S. Beattie, A. Grier, P. Wagle, Q. Zhang, and H. Hinton. StackGuard: Automatic adaptive detection and prevention of buffer-overflow attacks. In USENIX Security Symposium, Jan 1998.

Arnaud Venet and Guillaume Brat Precise and Efficient Static Array Bound Checking for Large Embedded C Programs. in PLDI, June, 2004.

Dinakar Dhurjati, Sumant Kowshik, Vikram Adve and Chris Lattner. Memory Safety Without Runtime Checks or Garbage Collection. 2003. in Proc. Languages Compilers and Tools for Embedded Systems 2003, pages (null). San Diego, CA.

Nurit Dor and Michael Rodeh and Mooly Sagiv. CSSV: towards a realistic tool for statically detecting all buffer overflows in C. 2003. in Proceedings of the ACM SIGPLAN 2003 conference on Programming language design and implementation, pages 155-167. ACM Press.

David L. Heine and Monica S. Lam. A Practical Flow-Sensitive and Context-Sensitive C and C++ Memory Leak Detector. 2003. in Proceedings of ACM SIGPLAN Conf. on Programming Language Design and Implementation, pages (null).

Sumant Kowshik, Dinakar Dhurjati and Vikram Adve. Ensuring Code Safety Without Runtime Checks for Real-Time Control Systems. 2002. in Proc. Int'l Conf. on Compilers Architecture and Synthesis for Embedded Systems, 2002, pages (null). Grenoble, France.

Seth Hallem and Benjamin Chelf and Yichen Xie and Dawson Engler. A system and language for building system-specific, static analyses. 2002. in Proceedings of the ACM SIGPLAN 2002 Conference on Programming language design and implementation, pages 69-82. ACM Press.

Dawson R. Engler and David Yu Chen and Andy Chou. Bugs as Deviant Behavior: A General Approach to Inferring Errors in Systems Code. 2001. in Symposium on Operating Systems Principles, pages 57-72.

D. Engler and B. Chelf and A. Chou and S. Hallem. Checking System Rules Using System-Specific, Programmer-Written Compiler Extensions. 2000. in Proceedings of the Fourth Symposium on Operating Systems Design and Implementation, San Diego, CA, pages (null).

William R. Bush and Jonathan D. Pincus and David J. Sielaff. A static analyzer for finding dynamic programming errors. 2000. Software: Practice and Experience, 30(7):775-802.

David L. Detlefs and K. Rustan M. Leino and Greg Nelson and James B. Saxe. Extended Static Checking. 1998. 5, COMPAQ Systems Rsearch Center, Palo Alto, USA.

Evans, David and Guttag, John and Horning, James and Tan, Yang Meng. LCLint: A Tool for Using Specifications to Check Code. 1994. in Proceedings of the ACM SIGSOFT '94 Symposium on the Foundations of Software Engineering, pages 87-96.

Trevor Jim, Greg Morrisett, Dan Grossman, Michael Hicks, James Cheney, and Yanling Wang.  Cyclone: A Safe Dialect of C. In USENIX Annual Technical Conference, 2002.

 

Model Checking

Yang, P. Twohey, D. Engler, and M. Musuvathi. Using model checking to find serious file system errors. In OSDI, Dec 2004.

Shaz Qadeer and Dinghao Wu Debugging Concurrent Programs with Sequential Analysis. in PLDI, June, 2004.

T. Henzinger, R. Jhala, and R. Majumdar Race Checking By Context Inference. in PLDI, June, 2004.

Sanjee, Kumar and Kai Li. Using Model Checking to Debug Device Firmware. 2002. in Proceedings of the Fifth Symposium on Operating Systems Design and Implementation, pages (null).

Madanlal Musuvathi and David Park and Andy Chou and Dawson R. Engler and David L. Dill. CMC: A Pragmatic Approach to Model Checking Real Code. 2002. in Proceedings of the Fifth Symposium on Operating Systems Design and Implementation, pages (null).

Sagar Chaki and Sriram K. Rajamani and Jakob Rehof. Types as models: model checking message-passing programs. 2002. in Symposium on Principles of Programming Languages(POPL), pages 45-57.

G. Brat and K. Havelund and S. Park and W. Visser. Model checking programs. 2000. in IEEE International Conference on Automated Software Engineering, pages (null).

Patrice Godefroid. Model Checking for Programming Languages using Verisoft. 1997. in Symposium on Principles of Programming Languages, pages 174-186.

Patrice Godefroid and Gerard J. Holzmann and Didier Pirottin. State-Space Caching Revisited. 1995. Formal Methods in System Design: An International Journal, 7(3):227-241.

Replay

Milos Prvulovic and Josep Torrellas. ReEnact: using thread-level speculation mechanisms to debug data races in multithreaded codes. 2003. in Proceedings of the 30th annual international symposium on Computer architecture, pages 110-121. ACM Press.

Michiel Ronsse and Koen De Bosschere. RecPlay: a fully integrated practical record/replay system. 1999. ACM Transactions on Computer Systems (TOCS), 17(2):133-152.

Min Xu and Rastislav Bodik and Mark D. Hill. A "flight data recorder" for enabling full-system multiprocessor deterministic replay. 2003. in Proceedings of the 30th annual international symposium on Computer architecture, pages 122-135. ACM Press.

S. Srinivasan, C. Andrews, S. Kandula, and Y. Zhou. Flashback: A light-weight extension for rollback and deterministic replay for software debugging. In USENIX ATC, Jun 2004.

Verification

Dimitra Giannakopoulou, Corina Pasareanu and Jamieson Cobleigh Assume-guarantee Verification of Source Code with Design-Level Assumptions. in ICSE, May, 2004.

 

Others

S. D. Stoller. Testing concurrent Java programs using randomized scheduling. In RV, July 2002.

Boris Beizer and Otto Vinter Bug Taxonomy and Statistics

Thomas Zimmermann, Peter Weissgerber, Stephan Diehl and Andreas Zeller Mining Version Histories to Guide Software Changes. in ICSE, May, 2004.

Drew Dean, Alan Hu. Fixing Races for Fun and Profit. in USENIX Security Symposium. August, 2004

Data Races: http://www.cs.ucsb.edu/~vigna/courses/CS595/raceconditions/

Home | Overview | Schedule | Policies | CritiqueAssignment | Projects | Topic Matrix | Reading List

Last updated: 08/15/05.