如何在valgrind中抑制GOT的“无效读取”警告?

时间:2019-01-29 09:11:48

标签: cmake valgrind ctest memcheck got

作为单元测试的一部分,我正在运行valgrind memcheck。 Valgrind针对特定的测试视图发出“大小为8的无效读数”,并修改了该过程的GOT(全局偏移表)。我希望仅针对GOT抑制此警告(即应发出其他“无效读取”警告)。有没有没有定义valgrind抑制文件的方法吗?作为参数的一部分,我可以通过CMake / CTest传递给valgrind吗?

1 个答案:

答案 0 :(得分:0)

如果您确定可以安全地排除该错误,那么建议您执行以下操作。

  1. 使用--gen-suppressions = all运行Valgrind。输出/日志文件将包含可在禁止文件中使用的禁止子句。
  2. 为测试创建抑制文件,并复制在步骤1中生成的子句。将“在此处插入抑制名称”位修改为有意义且唯一的内容。
  3. 查看用于抑制的调用堆栈的深度是否合适。如果您在多个平台上运行Valgrind,则可能需要通配符库路径或在每个平台上添加更多抑制。
  4. 使用抑制文件--suppressions =
  5. 更新测试以运行Valgrind