2

我正在对我的软件进行一些内存分析,并在使用 valgrind 的以下命令运行标准内存泄漏检查之后

valgrind --tool=memcheck --leak-check=full

我得到以下摘要:

==12550== 泄漏摘要:

==12550== 肯定丢失:7 个块中的 597,170 个字节

==12550== 间接丢失:10 个块中的 120 个字节

==12550== 可能丢失:1,455 个块中的 770,281 个字节

==12550== 仍然可达:2,319 个块中的 181,189 个字节

==12550== 抑制:0 个块中的 0 个字节

==12550== 未显示可达块(找到指针的块)。

==12550== 要查看它们,请重新运行: --leak-check=full --show-reachable=yes

==12550==

==12550== 对于检测到和抑制的错误计数,重新运行:-v

==12550== 错误摘要:来自 325 个上下文的 325 个错误(抑制:来自 11 个的 176 个)

但我想得到 xml 格式的结果。所以我使用 valgrind 的以下命令执行了内存泄漏检查,

valgrind --tool=memcheck --leak-check=full --xml=yes --xml-file=path_to_output

到这里这条命令执行成功了。但我注意到的是,xml 输出不包含LEAK SUMMARY之前的类似内容。

所以我想知道有什么办法可以生成 xml 格式的泄漏摘要。

谢谢

4

1 回答 1

2

目前您无法说服 Valgrind 以 XML 格式输出 LEAK Summary。仅当不输出到 XML 文件时才打印摘要。

更多细节参见 Valgrind 的源代码,函数print_results ():

if (VG_(clo_verbosity) > 0 && !VG_(clo_xml)) {
    ...
    VG_(umsg)("LEAK SUMMARY:\n");
    ...
}
于 2018-02-12T12:32:15.650 回答