Как найти код, приводящий к противоречивым результатам - PullRequest
0 голосов
/ 21 октября 2019

У меня есть программа на C ++, которая обрабатывает изображения и отслеживает объекты в них, используя OpenCV. По большей части это работает хорошо;однако результаты, которые я получаю, противоречивы. То есть примерно в 10% случаев я получаю немного другие выходные значения и не могу понять, почему. У меня нет никаких звонков наугад;Я запустил valgrind для поиска неинициализированной памяти;Я запустил статический анализ clang-tools. Не повезло. Несогласованные прогоны имеют один из нескольких разных выходов, поэтому они не являются полностью случайными.

Есть ли инструмент, который покажет мне, где расходятся две трассы? Если я запускаю gprof или, может быть, cflow, могу ли я сравнить их и посмотреть, что отличалось? Могу ли я использовать какой-либо другой инструмент или процесс?

Редактировать: Спасибо за отзыв. Я считаю, что это связано с многопоточностью и состоянием гонки;предложение было очень полезным. В настоящее время я пользуюсь советом от: способов найти условие гонки

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...