如何从Cppcheck/Cppcheclipse的XML输出生成可读报告及相关问题
Eclipse CDT中Cppcheck生成可读报告及无输出问题解决
一、生成人类可读报告的设置方法
- 打开Eclipse顶部菜单栏的
Window→Preferences,找到Cppcheck配置项 - 在
General标签页里,把Output Format从默认的XML改成Plain Text,保存设置后重新运行Cppcheck,控制台就会直接输出易懂的错误和警告内容 - 想要更详细的输出,切换到
Advanced标签页,在Additional Arguments里添加参数,比如--verbose(显示详细检查信息)、--enable=all(开启所有检查项),参数之间用空格分隔即可
二、定位Cppcheck命令行参数设置
- 上述
Advanced标签页的Additional Arguments就是添加自定义命令行参数的位置,插件自带的基础参数会自动拼接,你添加的参数会追加到命令行末尾 - 若想查看完整的命令行执行语句,可在
Preferences→Cppcheck→Debug中勾选Enable Debug Output,运行时控制台会打印出完整的Cppcheck调用命令
三、解决后续运行无输出的问题
- 检查增量检查设置:插件默认可能开启了增量检查(仅检查修改过的文件),如果没有文件改动就不会有新输出。去
Cppcheck配置的Run标签页,取消勾选Incremental Check,强制执行全量检查 - 清理旧检查结果:右键项目 →
Cppcheck→Clear Cppcheck Markers,之后重新运行检查 - 确认检查范围:运行Cppcheck时要选择正确的文件或项目,避免只选中无问题的文件
示例:XML输出转可读格式后的效果
错误 [bufferAccessOutOfBounds] (CWE-788): 缓冲区越界访问: buf 错误 [objectIndex] (CWE-758): 变量的地址在非零索引处被访问 警告 [argumentSize] (CWE-398): 缓冲区'buffer'过小,函数'function'的第二个参数需要更大的缓冲区
内容的提问来源于stack exchange,提问作者tiger19tony72
相关产品推荐
相关产品推荐

