Я использую модули массива, sgcheck и memcheck valgrind для проверки проекта c / c ++.
Я хотел бы знать, возможно ли заставить valgrind игнорировать часть кода. Когда я запускаю его в своем проекте, у меня возникает что-то вроде 248 разных «ложных» ошибок, генерируемых вызовом opencv.
Это нормально, но в настоящее время я не могу избежать этого вызова, поэтому я бы хотел, чтобы valgrind игнорировал эту часть кода.
Я пытаюсь создать файл, чтобы «подавить» его ошибку, добавив --gen-suppressions=all --log-file=valgrind.out
в моей командной строке, чтобы сгенерировать файл, чтобы игнорировать ошибку. Но есть некоторый «ручной процесс», например, удаление блока 248 из файла журнала, и я бы хотел этого избежать.
Итак: знаете ли вы, есть ли способ (немного похожий на ifdef или ifndef) заставить valgrind игнорировать часть кода?
Спасибо !
Наконец я сделал это с помощью --gen-suppressions=all --log-file=valgrind.out
:
--gen-suppressions=all –log-file=valgrind_tmp.out
проверить командуsed '/==/ d' valgrind_tmp.out > valgrind.out
убрать все ненужные строки--suppressions=valgrind.out
Поэтому я не нашел способа заставить memcheck избегать определенной части кода, я просто фильтрую вывод ошибок.
Других решений пока нет …