Похоже, Valgrind имеет два инструмента, которые оба обнаруживают ошибку потока: Helgrind и DRD. Эти инструменты практически одинаковы.
Мой основной вопрос: когда я должен использовать один вместо другого, чтобы проверить мой многопоточный код?
В более широком смысле, почему существуют два инструмента? Я предполагаю, что они не являются полностью избыточными. Каковы важные отличия? Должен ли я вообще планировать запуск моего кода с помощью обоих инструментов?