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.
- PTU, the Performance Tuning Utility