Tools to visualize multithreaded application call graph, multithreaded code coverage?
===

I would like to know if there are tools that can 

 - Help visualize call graph of a large multi-threaded application. 
 - Specifically I want to see how multiple threads interleaves on one core / executes simultaneously on multiple cores.
 - The tool would ideally identify possible wait/deadlock/race conditions.
 - Ultimately I want to do code coverage in terms of how threads interacts with each other during runtime (multi-thread-wise code coverage tool) so as to find potential multi-threaded bugs.

    I apologize if I haven't explained my question clearly and I would love to provide any details.