Share this page
  • Share this page on Twitter Share this page on Facebook Share this page on Digg Share this page on Del.icio.us Read the Inside Microsoft Research blog
  • E-mail this page Print this page
  • RSS feeds
Home > Projects > Poirot
Poirot: The concurrency sleuth
Poirot: The concurrency sleuth

(Hercule) Poirot is well known for his ability to solve difficult cases (aka concurrency bugs) that eluded the police (aka hard to find by conventional testing), often from within the confines of his home (aka statically without actually executing the program), using sharp logical reasoning (aka using theorem provers) with few mistakes (aka false alarms).

Try out Poirot live: http://www.rise4fun.com/Poirot

If you are using (or wish to use) Poirot in your research project, please drop us an email at poirot at microsoft dot com.

Poirot is a property checker for concurrent programs. It uses language-independent techniques to efficiently search the set of behaviors of a program for bugs. Consequently, Poirot can deal with programs written in a variety of languages. At this point, we plan to support C and .Net. Poirot4C (read Poirot-for-C) is available for download (see below). Poirot4.NET is coming soon.

Poirot works by first compiling the program in a supported language to a concurrent Boogie program. Next, it uses Corral, a symbolic exploration engine, to explore concurrent behaviors of the Boogie program looking for bugs. In case a bug is not found,  Poirot produces a coverage report detailing the set of program behaviors that it covered.

Downloads

Download Poirot4C! Read here for notes on running Poirot4C.

Download Corral! Corral is a goal-directed symbolic exploration engine. It can be used as a stand-alone tool or in conjunction with other tools that use the Boogie language as their intermediate representation.

Publications

Poirot in Action

Sound and Unified Software Verification for Weak Memory Models. [website]

Getting Rid of Store-Buffers in the Analysis of Weak Memory Models. G. Parlato, F. Atig, A. Bouajjani. [paper, experiments]

How to Shop for Free Online – Security Analysis of Cashier-as-a-Service Based Web Stores. R. Wang, S. Chen, X. Wang, S. Qadeer. [paper]