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