ThreadSanitizer: data race detection in practice
Valgrind: a framework for heavyweight dynamic binary instrumentation