我現在在Ubuntu Linux中使用或不使用Valgrind運行CTest。首先,我成立了一個腳本的CMakeLists.txt,使測試:爲什麼我無法使用CMake獲取Valgrind診斷信息?
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:
這絕對不是我所期望的診斷信息。我想知道我下一步該做什麼。謝謝!
編輯: 後來,我發現只有在發生內存泄漏的情況下,診斷信息纔可用。但是,診斷信息非常模糊,因爲沒有給出發生錯誤的位置。我怎樣才能獲得更詳細的信息?