It is worth noting that Valgrind, supporting multithreaded programs, will not actually run program flows in parallel if you have several cores. It also alternates threads with finer grain than its own OS scheduler. These combined 2 facts can make the program behave differently with race conditions or other parallel anomalies.
You might want to try Helgrind , a tool designed primarily for detecting the correct discipline of blocking and drd , a tool designed primarily for detecting data calculations.
source
share