Valgrind Memcheck怎么输出xml报告

千墨吖_8681

千墨吖_8681

2026-09-04

527人浏览

原创

--xml=yes 仅对 --tool=memcheck 有效,必须显式指定该工具;默认 memcheck 不启用 xml 输出,且需配合 --xml-file= 才能生成可解析的 xml 报告。

valgrind memcheck怎么输出xml报告

valgrind --xml=yes 必须配合 --tool=memcheck 使用

Memcheck 是唯一支持 XML 输出的 Valgrind 工具,其他工具(如 helgrindcallgrind)传入 --xml=yes 会直接报错并退出。如果你看到 unrecognised option: --xmlXML output not supported by this tool,基本就是误用了工具或漏写了 --tool=memcheck

正确写法只有这一种组合:

valgrind --tool=memcheck --xml=yes ./myprogram

不加 --tool=memcheck 时,Valgrind 虽默认启用 Memcheck,但此时 --xml=yes 不生效 —— 这是常见坑点,必须显式指定。

--xml-file= 才能保存 XML 到文件

--xml=yes 只是开启 XML 格式输出,但默认仍输出到 stderr,不是文件。想生成可解析的 XML 报告,必须配 --xml-file=

  • --xml-file=valgrind-report.xml:写入当前目录下的固定文件名
  • --xml-file=valgrind-report.%p.xml%p 会被替换成进程 PID,避免并发覆盖
  • 不能只用 --log-file=xxx.xml:它输出的是普通文本日志,不是 XML 结构

示例命令:

valgrind --tool=memcheck --xml=yes --xml-file=report.xml ./a.out

XML 报告里没有 “still reachable” 类泄漏?检查 --show-reachable

默认 XML 输出中,still reachablesuppressed 类型的内存块不会出现在 <error></error> 节点下,即使你加了 --leak-check=full。这是因为 Memcheck 的 XML schema 只把 definitely lostindirectly lostpossibly lost 视为“错误”,而前两者属于“状态信息”。

Valgrind 3.23.0
Valgrind 3.23.0

Valgrind 3.23.0 官方历史源码发布包,适合旧项目兼容、复现历史内存检测结果、排查版本差异和在受支持 Unix-like 系统上自行构建。

下载

如果需要在 XML 中也包含可达内存的统计,得额外加参数:

  • --show-reachable=yes:让 still reachable 出现在 <error kind="StillReachable"></error> 节点里
  • --suppressions=mysupp.supp 配合 --gen-suppressions=all 可导出压制规则,但不会进主报告

注意:--show-reachable=yes 会让 XML 文件体积明显变大,且部分解析器(如 Jenkins 的 Valgrind 插件)可能不识别该 kind。

CI/CD 里解析 XML 报告容易卡在 DTD 加载失败

Valgrind 生成的 XML 开头有 ..> 声明,指向本地 DTD 文件(如 /usr/share/valgrind/memcheck.h)。CI 环境通常没装 Valgrind 开发包,解析器(如 Python 的 xml.etree.ElementTree)尝试加载 DTD 会超时或报 IOError

绕过方法有两个:

  • --xml-userdatum=ci-run(Valgrind ≥ 3.15)+ 自定义 XSLT,但需配套处理
  • 更简单:用 sed 在生成后删掉 DOCTYPE 行(安全,不影响结构):
    sed -i '/^d' report.xml

别依赖 --xml-stylesheet:它只影响显示,不解决解析问题;也别用 --xml=no 回退 —— 那就不是 XML 了。

XML 输出对自动化友好,但细节比文本报告更脆弱:路径权限、DTD、kind 分类、PID 占位符处理都得对齐。跑一次 valgrind --tool=memcheck --xml=yes --xml-file=test.xml true 先看基础结构,比直接塞进 pipeline 更稳妥。

相关文章

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

valgrind valgrind memcheck

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
pdf怎么转换成xml格式
pdf怎么转换成xml格式

将 pdf 转换为 xml 的方法:1. 使用在线转换器;2. 使用桌面软件(如 adobe acrobat、itext);3. 使用命令行工具(如 pdftoxml)。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2024.04.01

3864

5

xml怎么变成word
xml怎么变成word

步骤:1. 导入 xml 文件;2. 选择 xml 结构;3. 映射 xml 元素到 word 元素;4. 生成 word 文档。提示:确保 xml 文件结构良好,并预览 word 文档以验证转换是否成功。想了解更多xml的相关内容,可以阅读本专题下面的文章。

2024.08.01

4917

7

xml是什么格式的文件
xml是什么格式的文件

xml是一种纯文本格式的文件。xml指的是可扩展标记语言,标准通用标记语言的子集,是一种用于标记电子文件使其具有结构性的标记语言。想了解更多相关的内容,可阅读本专题下面的相关文章。

2024.11.28

2222

7

Aionclaw智能助手介绍
Aionclaw智能助手介绍

本专题汇总了AionClaw(AI龙虾助手)的功能介绍与在线使用入口。AionClaw是杭州趣猿人工智能有限公司推出的桌面级AI智能体,能直接在电脑上读写文件、运行脚本、操作浏览器,自动交付Word、PPT、Excel等成品。

2026.09.20

0

13

AionClaw AI智能体与电脑自动化任务执行功能使用教程
AionClaw AI智能体与电脑自动化任务执行功能使用教程

AionClaw专题整理AI智能体与电脑自动化相关功能使用教程,涵盖安装部署、AI任务执行、Skills技能、文件处理、浏览器控制、电脑操作、持久记忆、聊天工具连接以及办公、编程和内容创作等功能,帮助用户快速掌握AionClaw的实际使用方法。

2026.09.20

0

15

AI视频生成软件推荐
AI视频生成软件推荐

本专题汇总了当前主流的AI视频生成软件推荐与排行榜单,涵盖seko、AniShort、剧云、Lovart、LiblibAI及立刻mv等热门工具。同时整理了各软件在文生视频、图生视频、时长限制、画质表现及免费额度等方面的差异对比,助您快速选对适合创作需求的AI视频生成工具。

2026.09.16

160

9

ai生成视频的工具免费版合集
ai生成视频的工具免费版合集

本专题汇总了当前免费AI生成视频工具的排行榜与推荐清单,涵盖seko、讯飞智作、AniShort及剧云、Lovart等多模型集成平台。同时整理了各工具的免费额度、输出时长、水印政策及适用场景差异,助您快速选择合适工具开启AI视频创作。

2026.09.16

60

10

Pandas时间序列分析与可视化报表
Pandas时间序列分析与可视化报表

本专题整理Pandas日期转换、时间索引、重采样、滚动窗口、时区处理、plot绘图、Styler表格样式和报表输出方法。

2026.09.16

80

23

Pandas数据筛选索引与清洗处理
Pandas数据筛选索引与清洗处理

本专题整理Pandas中的loc、iloc、条件筛选、query查询、缺失值处理、重复值删除、类型转换和字符串列清洗方法。

2026.09.16

60

25

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Valgrind研究论文资料
Valgrind研究论文资料

共0课时 | 0人学习

Valgrind发行文档与NEWS
Valgrind发行文档与NEWS

共0课时 | 0人学习

Valgrind支持平台说明
Valgrind支持平台说明

共0课时 | 0人学习