Also see: PinPlay Tutorial at PLDI 2016
- Slides for the tutorial.
- An Ubuntu VirtualBox appliance with PinPlay kit pre-installed: Download *.ova file here.
Reproducible dynamic analysis of parallel programs is hard mainly because their behavior changes from run to run. PinPlay is an execution capture and deterministic replay framework that enables reproducible dynamic analysis of x86 programs. PinPlay is based on the popular Pin dynamic instrumentation system and is distributed (for Linux) as an extended Pin kit at http://www.pinplay.org. The PinPlay kit provides a library that Pin tools can link in with small source changes. A PinPlay enabled Pin tool can act either as a recording tool creating a set of files called a ‘pinball’, or as a replaying tool consuming a pinball instead of a live binary. Replay-based analyses are guaranteed to be reproducible. A very useful example of reproducible analysis is replay-based debugging (see www.drdebug.org ) of multi-threaded programs. The pinball for a run of a program with a bug can be replayed with the replayer tool connected to a debugger (GDB). PinPlay guarantees that the same text/data addresses, and the same thread ordering is seen on each replay/debug session making cyclic debugging of multi-threaded programs a lot easier.
The tutorial will provide a detailed description of PinPlay, instructions on writing PinPlay enabled Pin tools, and a demonstration of replay-based debugging with PinPlay. The replay debugging framework will be made available at the PinPlay web-site for anyone to tailor to their debugging needs.
Schedule (room A103 - A104, first floor, Oregon Convention Center):
Part I: 9AM -- 11AM
o Testimonial [Milind ]
< BREAK 11AM-11:20AM : 20 mins>
Part II: 11:20AM --12:30PM
Topics to be covered: