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 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.

Tue 14 Jun

Displayed time zone: Tijuana, Baja California change

09:00 - 10:00
Using PinPlay for Reproducible Analysis and Replay DebuggingTutorials at Santa Cruz East
09:00
60m
Talk
Using PinPlay for Reproducible Analysis and Replay Debugging
Tutorials
Link to publication
10:30 - 12:00
Using PinPlay for Reproducible Analysis and Replay DebuggingTutorials at Santa Cruz East
10:30
90m
Talk
Using PinPlay for Reproducible Analysis and Replay Debugging
Tutorials
Link to publication