Dynamic Program Slicing with PinPlay

Published on April 07 , 2015

Dynamic Program Slicing is a dynamic program analysis technique that given a slicing criterion (line number, variable,..) finds all statements in the program affecting (if backward sliced) or affected by (if forward sliced) the slicing criterion for a specific execution.

Dynamic Slicing has been around for decades however the main obstacle in its wide-spread acceptance is the high overhead (both run-time and space) involved. We have addressed the overhead concerns by various techniques described in the CGO 2014 paper on DrDebug (see [1]). We have implemented our techniques in a debugging and analysis toolkit where the Linux debugger GDB is extended to allow interactive dynamic slicing.  By doing dynamic slicing for the recording of a small execution region of a program, the overhead can be managed also providing repeatable dynamic slicing results across multiple debug sessions.


1. DrDebug/PinPlay kit  ( version 2.2 or higher)

2. Eclipse GUI for DrDebug/slicing.

 <Being updated. Download links coming soon.>


  • Dynamic slicing implementation included in the PinPlay/DrDebug toolkit was developed by Yan Wang as part of her Ph.D. at University of California, Riverside, under the supervision of Prof. Rajiv Gupta. The work was supported by a grant from Intel. See license for slicing code from U C Riverside.
  • The Eclipse slicing GUI was implemented by David Wootton with the support from a grant from DARPA to Intel.


1. DrDebug: Deterministic Replay based Cyclic Debugging with Dynamic Slicing; Yan Wang, Harish Patil, Cristiano Pereira, Gregory Lueck, Rajiv Gupta, Iulian Neamtiu. CGO 2014.

Navigate to: PinPlay  | DrDebug 


Product and Performance Information


Intel's compilers may or may not optimize to the same degree for non-Intel microprocessors for optimizations that are not unique to Intel microprocessors. These optimizations include SSE2, SSE3, and SSSE3 instruction sets and other optimizations. Intel does not guarantee the availability, functionality, or effectiveness of any optimization on microprocessors not manufactured by Intel. Microprocessor-dependent optimizations in this product are intended for use with Intel microprocessors. Certain optimizations not specific to Intel microarchitecture are reserverd for Intel microprocessors. Please refer to the applicable product User and Reference Guides for more information regarding the specific instruction sets covered by this notice.

Notice revision #20110804