The Lock Callstacks tab allows you to specify the types of data that will be collected for display by Thread Validator.
The summary and overview information gathered with the Collect settings is very useful and has a relatively low impact upon the performance of the target application.
In some circumstances the information collected is enough to diagnose various threading problems, but other times you'll need more data.
Many threading problems are much easier to diagnose if a callstack is also associated with the data. Callstacks allow source code inspection and a greater level of understanding of the exact nature of the problem.
Thread Validator can store the most recent callstack or all callstacks associated with critical sections and wait events, contentions and recursions.
Information is stored on a per thread basis. If for example, a deadlock occurs, you can see which critical section was locked or waiting, and where this happened.
•Collect callstacks for critical sections and waits collect the most recent callstacks for each of the checked items below, or not at all.
Collecting callstacks can cause significant drops in performance depending on the nature of the target application.
•Keep all callstacks for...
•critical sections and waits keep all callstacks per critical section so that analysis of the various callers can be performed
•contended locks collect all lock contention callstacks
•recursing locks collect all lock recursion callstacks
Keeping all callstacks causes an even larger performance drop and increase in memory usage. It's recommended that all these option are only checked if you have a need for the information about all callstacks.
Reset All - Resets all global settings, not just those on the current page.
Reset - Resets the settings on the current page.