This is a pretty interesting approach to a deadlock detector: It uses sos (son of strike debugger) and automates it under the covers and parses its output to discover runtime deadlocks on processes. At the comments there is a reference to something similar.
Unlike the upcoming Typemock racer (which should be out around mid august), these tools only find deadlocks that occur at runtime, but will not provoke the code into creating deadlocks. that is, the possibility of finding a deadlock that only happens about once in two days in an application using these tools is just about … every couple of days, since it is using the standard process of the application (as far as I can see from the code).
The idea in racer is that it will run all permutations of thread race conditions until it finds a deadlock. so either it finds it, or there isn’t one.