Is there a good thread tracer for C / C ++ like Haskell Threadscope?

Is there a free open source tool like Threadscope (and newer than NPTL tracking tool ) for analyzing CPU usage / threading errors?

+7
source share
1 answer

CPU utilization analysis and thread error checking may not be in one tool. To find streaming errors, a huge memory access analysis is needed. I can call valngrind helgrind http://valgrind.org/docs/manual/hg-manual.html and google threadSanitizer, tsan (based on helgrind) http://code.google.com/p/data-race-test/ wiki / ThreadSanitizer . Both tools perform temporary code checks using the valgrind libVEX dynamic code modification scheme. This leads to a significant slowdown, for example. for Helgrind (from hg-manual):

Performance can be very low. Slowdowns of the order of 100: 1 are not unusual. Limitations to improve performance are limited.

To use the CPU, you must use a profiler, which affects the performance of the application only slightly (up to 5-10%), for example. oprofile or linux perf https://perf.wiki.kernel.org/index.php/Main_Page

If threads in an application are added using OpenMP, there are solutions for analyzing OMP thread balancing, for example. The Intel openMP implementation may record some information, as shown here .gvs (GuideView openmp file format)

+1
source

All Articles