如何从CMake向Valgrind传递参数?配置失效问题解决
如何通过CMake向Valgrind传递参数
作为Stack Overflow相关问题的补充,本文探讨如何从CMake向Valgrind传递参数。
用户尝试了以下CMake配置:
# 启用Valgrind检查 set(CTEST_MEMORYCHECK_TYPE "valgrind") set(CTEST_MEMORYCHECK_COMMAND_OPTIONS "--leak-check=no")
根据CMake官方文档,上述配置应当生效,但执行cmake . + make后,运行ctest -T memcheck仍检测到内存泄漏:
$ ctest -T memcheck | grep "Memory Leak\|Defects" 1/1 MemCheck: #1: test ............................. Defects: 1 Memory Leak - 1
查看生成的DartConfiguration.tcl文件,发现配置的参数并未被写入:
$ sed -n "79,80p" ./DartConfiguration.tcl MemoryCheckCommand: /usr/local/bin/valgrind MemoryCheckCommandOptions: # <--- 此处无内容...
手动修改DartConfiguration.tcl文件后,配置正常生效:
$ sed -i "s/MemoryCheckCommandOptions:/MemoryCheckCommandOptions: --leak-check=no/g" DartConfiguration.tcl $ ctest -T memcheck | grep "Memory Leak\|Defects" $ # 无输出(状态正常)
内容的提问来源于stack exchange,提问作者OrenIshShalom
相关产品推荐
相关产品推荐

