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
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
which operates as a
when the function is called followed by an
before it returns. If you want to exclude certain lock types from the instrumentation then there are command line switches to do so,
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).