【问题标题】:ctest does not find valgrindctest 没有找到 valgrind
【发布时间】:2014-10-21 23:28:54
【问题描述】:

打电话

ctest -j4 -DCTEST_MEMORYCHECK_COMMAND="/usr/bin/valgrind" -DMemoryCheckCommand="/usr/bin/valgrind" --output-on-failure -T MemCheck 

Memory checker (MemoryCheckCommand) not set, or cannot find the specified program.

为什么不自动找到valgrind,手动指定时也不找到?

【问题讨论】:

    标签: c++ cmake valgrind ctest


    【解决方案1】:

    CTest Wiki page 中所述,CTest 从构建目录中的文件DartConfiguration.tcl 中读取内存检查命令的位置(以及其他设置)。创建 dart 配置文件的一种方法是在 CMakeLists.txt 中简单地包含 CTest CMake 模块:

    include (CTest)
    

    CTest 模块将在 /usr/bin 中找到您的 valgrind 安装,并将指向它的变量 MemoryCheckCommand 放入 DartConfiguration.tcl 文件中。

    【讨论】:

      【解决方案2】:

      通过“apt-get install valgrind”安装valgrind后,错误消失了。 错误是 “内存检查器(MemoryCheckCommand)未设置,或找不到指定的程序。 运行 CTest 时出错”

      新结果

      处理内存检查输出: 1/1 MemCheck:cpp_test 缺陷:1 MemCheck 日志文件可以在这里找到:( 对应于测试编号) 内存检查结果: 内存泄漏 - 1

      详细日志已记录 /build/Testing/Temporary# cat MemoryChecker.1.log

      显示细节泄露信息

      堆摘要: 在退出时使用:1 个块中的 8,000 个字节 总堆使用量:2 次分配,1 次释放,分配 80,704 字节

      你应该从 cmake ..cmake --build .ctest -T memcheck

      重新开始

      【讨论】:

        猜你喜欢
        • 2020-09-22
        • 2020-10-13
        • 1970-01-01
        • 2021-10-26
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多