New release of deadlock detection tools -

We've released new versions of both our Lock Inversion Detector, LID and our Lock Inversion Analyser, LIA today.

This release adds the instrumentation of more locking APIs to the tools. We now track Slim Reader Writer (SRW) locks and Mutexes as well as still tracking Critical Sections. These changes make the tools more useful for more people; we tended to focus on using mainly Critical Sections in our code which is why these other lock types have taken longer to be added to the tools. We've extended the API support for Critical Sections to include SleepConditionVariableCS() which operates as a LeaveCriticalSection() when the function is called followed by an EnterCriticalSection() before it returns. If you want to exclude certain lock types from the instrumentation then there are command line switches to do so, -noCS, -noSRW and -noMUT.

In addition, in the Lock Inversion Analyser, you can now specify Critical Sections that you wish to ignore by first obtaining their lock id by running with -lockID and the running again with -excludeLock; see the command line help for more information. You can also only track Critical Sections for which the analyser sees the call to CreateCriticalSection(), or equivalent, by using the command line switch -seeCreate; this can reduce the number of locks that you instrument in some situations.

Slim Reader Writer locks cannot be acquired recursively and attempting to do so will cause a deadlock. Both LID and LIA will detect this deadlock, terminate the target process and pinpoint the problem location.

All customers are being contacted via email with details of how to obtain the latest release of LIA and you can download the latest version of LID from here (if you've already registered for the updates mailing list then simply reply to the email notification and we'll send you the latest version).

Do continue to get in touch with comments and suggestions and any problems that you have.

Leave a comment

About this Entry

New release of deadlock detection tools was the previous entry in this blog.

New release of deadlock detection tools - is the next entry in this blog.

This is where we write about the development of Lock Explorer, a suite of tools for locating lock inversions, finding deadlocks before they happen and investigating lock usage, contention and performance in multi-threaded code.

Find recent content on the main index or look in the archives to find all content.