У меня есть немного кода с состоянием гонки... Я знаю, что это состояние гонки, потому что оно не происходит постоянно, и, похоже, это происходит чаще на двухъядерных машинах.
Это никогда не происходит, когда я выслеживаю. Хотя есть вероятность, что это может быть и тупиковая ситуация. Анализируя этапы завершения журналов, где это происходит и не происходит, я смог точно определить эту ошибку в одной функции. Однако я не знаю, где в рамках функции это происходит. Это не на высшем уровне.
Добавление операторов журнала или точек останова изменит время, если это состояние гонки, и предотвратит это.
Есть ли какой-либо метод, который я могу использовать, помимо получения анализатора состояния гонки, который позволит мне точно определить, где это происходит?
Это в Visual Studio 9 с С++ (неуправляемого варианта).