Я использую valgrind для проверки памяти.Чтобы настроить valgrind, я определяю следующие переменные в моей системе сборки:
find_program( MEMORYCHECK_COMMAND valgrind )
set( MEMORYCHECK_COMMAND_OPTIONS "--trace-children=yes --leak-check=full" )
Кроме того, есть мой файл подавления valgrind:
set( MEMORYCHECK_SUPPRESSIONS_FILE "${PROJECT_SOURCE_DIR}/valgrind_suppress.txt" )
После того, как вы запишите свои файлы CMakeLists.txtи правильно настроить в них valgrind, вы можете запустить следующую команду:
cmake -G ... (to configure your build)
ctest -D ExperimentalBuild (this will build your code)
ctest -R testName -D ExperimentalTest (just runs the test)
ctest -R testName -D ExperimentalMemCheck (to run the test under valgrind)
Это обманет вашу систему сборки для локального запуска автоматизации тестирования.Ожидается, что вы запустите:
ctest -R testName -D ExperimentalSubmit
далее, чтобы отправить (на панель управления по умолчанию или на свою), но вам не нужно проходить этот шаг, чтобы выполнить то, что вы хотите.Результаты будут сохранены в каталоге Testing / Temporary /.