Как подавить предупреждение "неверное чтение" для GOT в valgrind?

Я использую valgrind memcheck как часть моих модульных тестов. Valgrind выдает "Недопустимое чтение размера 8" для конкретных тестовых представлений и изменяет GOT (глобальную таблицу смещений) процесса. Я хотел бы подавить это предупреждение предпочтительно только для GOT (то есть должны быть выданы другие предупреждения "недопустимых чтений"). Есть ли способ сделать это без определения файла подавления valgrind? Как часть аргумента я могу передать valgrind через CMake/CTest?

1 ответ

Если вы уверены, что можно устранить ошибку, я предлагаю вам сделать следующее.

  1. Запустите Valgrind с параметром --gen-suppressions=all. Файл вывода / журнала будет содержать условие подавления, которое можно использовать в файле подавления.
  2. Создайте файл подавления для теста и скопируйте предложение (я), сгенерированные на шаге 1. Измените бит "вставьте здесь имя подавления", чтобы он был чем-то значимым и уникальным.
  3. Проверьте, подходит ли глубина стека вызовов для подавления. Если вы запускаете Valgrind более чем на одной платформе, вам может понадобиться либо подстановочные пути к библиотекам, либо добавить дополнительные подавления для каждой платформы.
  4. Обновите тест для запуска Valgrind, используя файл подавления, --suppressions=
Другие вопросы по тегам