从现有Valgrind报告创建抑制文件
Creating Suppression File from Existing Valgrind Report
创建valgrind报告的最简单方法是使用命令--gen-suppressions=all
运行valgrind。
但我们仍然必须至少运行一次测试。在我的情况下,单个valgrind测试花费的时间太长,并且由于我已经有一个以前运行的valgrind报告在没有--gen-suppressions=all
命令的情况下运行,有没有办法从该报告中获取抑制命令?
当然,但如果Valgrind为您生成,会容易得多。我只建议你在没有太多抑制的情况下尝试一下。
此处对格式进行了说明。看起来像这个
{
description, preferably unique
Memcheck:[error type]
callstack 1
callstack 2
etc
}
如果您想手动完成这一切,则需要计算出从详细日志描述到简洁抑制名称的所有映射。例如
条件跳转或移动取决于未初始化的值
对应
Memcheck:Cond
对于调用堆栈,如果您只有一个应用程序(没有动态库),并且它是用调试信息编译的,那么您的生活会更轻松。你需要计算
- 使用"fun"的函数的损坏名称
- 如果没有函数名,则使用"obj"的动态库
- 如果你的exe被剥离,那么我认为你必须使用十六进制地址
您可能还需要使用通配符。'*'匹配路径组件和。。。匹配调用堆栈深度中的任何内容。例如
有趣:foo
有趣:酒吧
这将匹配foo和bar之间任意数量的调用级别。
相关文章:
- 终端不会为C++文件创建.exe文件吗
- 如何从具有两列的.txt文件创建并行数组?
- 从 .lib 文件创建一个.dll文件
- 如何从输入文件 c++ 创建随机名称生成器
- 无法从 cso 文件创建顶点着色器(从 fx 文件创建)
- 如何为多个目录中的多个文件创建生成文件?
- 在编译时从 c++ 文件创建枚举
- 如何在运行时从 c++ 中的 DLL 文件创建对象?
- 文件创建并不总是成功
- 如何使用 QFile、c++ 从文件创建整数数组
- 您可以使用 makefile 从 .o 对象文件创建 C++ 文件吗?
- 从函数中的dat文件创建一个2维数组
- 如何为 cpp 和 h 文件创建别名(并忽略编译器__attributes__)
- 如何从现有的生成文件创建 CMake 文件?
- 为什么我无法使用文本文件创建文件映射?
- 通过读取文件创建映射<字符串,矢量>时如何管理内存<string>
- 从文本文件创建 2D 字符串矢量
- ofStream: - 尽管文件创建了,但文本文件上没有输出
- 从语言文件创建JSON对象
- 将文本文件创建到节点.js的插件C++