How to identify deadlock conditions in a third-party application? [closed]
Questions asking us to recommend or find a tool, library or favorite off-site resource are off-topic for Stac开发者_C百科k Overflow as they tend to attract opinionated answers and spam. Instead, describe the problem and what has been done so far to solve it.
Closed 9 years ago.
Improve this questionI am using a third-party application to handle batch CD audio extraction via multiple FireWire attached devices, but the application frequently (though non-deterministically) hangs during the extraction. I suspect that the multithreaded application is deadlocking over some shared resource. The developer, however, suspects the problem lies elsewhere but is not addressing the problem at this time. I would like to be able to do some legwork on my end to a) prove the condition exists and b) ideally point him in the right direction.
The problems: while I used to be a programmer, it's been awhile and I need to shake off the dust (last work I did was back in '99 and it was under Solaris, while the application runs under XP). Rather than there being a dearth of information online, there's almost too much to digest. Are there any suggested guides or tutorials that might help me get back up to speed sufficient enough to help identify and/or diagnose the deadlock, or are there tools or approaches that I should study up on to aid me in my task?
Many thanks for all suggestions!
Try using AppVerfier. Run the application with AppVerifier enabled for it (make sure the Lock stops are enabled). Make sure you run the application under windbg/cdb in order to get the most information at the time the stop happens. You should be able to see the possible lock contention.
精彩评论