Я использую библиотеку c ++, которая должна быть многопоточной, и число рабочих потоков может быть установлено с помощью переменной. Библиотека использует pthreads. Проблема возникает, когда я запускаю приложение, которое предоставляется в качестве теста библиотеки, на четырехъядерном компьютере, использующем 3 потока или более. Приложение завершается с ошибкой во время выполнения ошибки сегментации. Когда я пытаюсь вставить в некоторые части библиотеки несколько трассирующих «cout», проблема решается, и приложение завершается нормально.
При работе на одноядерном компьютере, независимо от того, какое количество потоков используется, приложение завершается нормально.
Как определить, откуда возникла проблема?
Это ошибка синхронизации? как я могу найти это? Есть ли какой-либо инструмент, который я могу использовать, чтобы проверить код?