A randomized dynamic program analysis technique for detecting real deadlocks

P Joshi, CS Park, K Sen, M Naik - ACM Sigplan Notices, 2009 - dl.acm.org
ACM Sigplan Notices, 2009dl.acm.org
We present a novel dynamic analysis technique that finds real deadlocks in multi-threaded
programs. Our technique runs in two stages. In the first stage, we use an imprecise dynamic
analysis technique to find potential deadlocks in a multi-threaded program by observing an
execution of the program. In the second stage, we control a random thread scheduler to
create the potential deadlocks with high probability. Unlike other dynamic analysis
techniques, our approach has the advantage that it does not give any false warnings. We …
We present a novel dynamic analysis technique that finds real deadlocks in multi-threaded programs. Our technique runs in two stages. In the first stage, we use an imprecise dynamic analysis technique to find potential deadlocks in a multi-threaded program by observing an execution of the program. In the second stage, we control a random thread scheduler to create the potential deadlocks with high probability. Unlike other dynamic analysis techniques, our approach has the advantage that it does not give any false warnings. We have implemented the technique in a prototype tool for Java, and have experimented on a number of large multi-threaded Java programs. We report a number of previously known and unknown real deadlocks that were found in these benchmarks.
ACM Digital Library