logo

We develop fundamental program analysis techniques and practical tools to make complex software more reliable, secure, scalable, and run faster. Our research has made several important contributions to concurrency debugging.

Concurrency defect prediction and verification

  • "Precise and Maximal Race Detection from Incomplete Traces", Proceedings of ACM SIGPLAN Conference on Object Oriented Programming, Systems, Languages, and Applications (OOPSLA 2016).
  • "Maximal Causality Reduction for TSO and PSO", Proceedings of ACM SIGPLAN Conference on Object Oriented Programming, Systems, Languages, and Applications (OOPSLA 2016).
  • "Stateless Model Checking Concurrent Programs with Maximal Causality Reduction", Proceedings of ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI 2015).
  • "Finding Schedule-Sensitive Branches", Proceedings of Joint European Software Engineering Conference and ACM SIGSOFT Symposium on Foundations of Software Engineering (ESEC/FSE 2015).
  • "GPredict: Generic Predictive Concurrency Analysis", Proceedings of ACM/IEEE International Conference on Software Engineering (ICSE 2015).
  • "Maximal Sound Predictive Race Detection with Control Flow Abstraction", Proceedings of ACM SIGPLAN Conference on Programming Language Design and Implementation Results (PLDI 2014).
  • "Persuasive Prediction of Concurrency Access Anomalies", Proceedings of ACM International Symposium on Software Testing and Analysis (ISSTA 2011).
  • Multiprocessor deterministic replay

  • "Reproducing Concurrency Bugs Using Local Clocks", Proceedings of ACM/IEEE International Conference on Software Engineering (ICSE 2015).
  • "CLAP: Recording Local Executions to Reproduce Concurrency Failures", Proceedings of ACM SIGPLAN Conference on Programming Language Design and Implementation Results (PLDI 2013, Distinguished Paper). SIGPLAN Research Highlights
  • "LEAN: Simplifying Concurrency Bug Reproduction via Replay-supported Execution Reduction", Proceedings of ACM SIGPLAN Conference on Object Oriented Programming, Systems, Languages, and Applications (OOPSLA 2012).
  • "LEAP: Lightweight Deterministic Replay of Concurrent Java Programs", Proceedings of ACM SIGSOFT Symposium on Foundations of Software Engineering (FSE 2010).
  • Concurrency bug diagnosis and repair

  • "Verifying Synchronization for Atomicity Violation Fixing", IEEE Transactions on Software Engineering (TSE 2016), vol. 42, no. 3, pages 280 - 296.
  • "Scaling Predictive Analysis of Concurrent Programs by Removing Trace Redundancy", ACM Transactions on Software Engineering and Methodology (TOSEM 2013), vol. 22, no. 1, pages 8:1-8:21.
  • "Execution Privatization of Scheduler-Oblivious Concurrent Programs", Proceedings of ACM SIGPLAN Conference on Object Oriented Programming, Systems, Languages, and Applications (OOPSLA 2012).
  • "An Efficient Static Trace Simplification Technique for Debugging Concurrent Programs", Proceedings of International Static Analysis Symposium (SAS 2011).