There are numerous tools available to make testing, debugging and profiling concurrent applications easier. Intel has a large set of very good tools, some of which are free, but most requires a license. The list of Open Source tools are growing rapidly, but still has ways to go.

Open Source Tools

  • gdb (the standard gnu debugger, which handles threads fairly well).
  • valgrind (and callgrind, cachegrind etc.), together with kcachegrind.
  • Pin is a dynamic binary instrumentation tool.

Intel tools

  • vtune
  • PTU, the Performance Tuning Utility