我现在在 Ubuntu Linux 中使用或不使用 Valgrind 运行 CTest。首先,我设置了一个 CMakeLists.txt 脚本来启用测试:
enable_testing()
include(CTest)
if(UNIX)
set(CTEST_MEMORYCHECK_COMMAND, "usr/bin/valgrind")
set(CTEST_MEMORYCHECK_COMMAND_OPTIONS, "--trace-children=yes --leak-check=full")
endif()
add_test(NAME test
WORKING_DIRECTORY ${my_outputdirectory}
COMMAND test_exe)
当我在没有 valgrind 的情况下运行测试时,我使用以下命令:
cmake -G "CodeBlocks - Unix Makefiles"
ctest -D ExperimentalBuild
ctest -R test -D ExperimentalTest
这很好用。但是,当我运行以下命令来调用 valgrind 时:
cmake -G "CodeBlocks - Unix Makefiles"
ctest -D ExperimentalBuild
ctest -R test -D ExperimentalMemChec
出现以下消息:
--Processing memory checking output:
Memory checking results:
这绝对不是我期望的诊断信息。我在想我接下来应该做什么。谢谢!
编辑:后来,我发现诊断信息只有在发生内存泄漏的情况下才可用。然而,诊断信息在没有给出错误发生位置的意义上是非常模糊的。我怎样才能获得更详细的信息?