要构建以提供给 cppcheck MISRA 附加组件的正确规则文件是啥?
Posted
技术标签:
【中文标题】要构建以提供给 cppcheck MISRA 附加组件的正确规则文件是啥?【英文标题】:Whats the correct rule file to build to provide to the cppcheck MISRA add-on?要构建以提供给 cppcheck MISRA 附加组件的正确规则文件是什么? 【发布时间】:2019-04-05 12:40:56 【问题描述】:这是一个关于提供给 misra.py cppcheck 应用程序的规则文件的预期布局和内容的一般问题。
位于 github 上的 cppcheck 源代码: source cppcheck
我的想法有多种?
Appendix A Summary of guidelines
Rule 1.1
Rule text description
是吗
Appendix A Summary of guidelines
Rule 1.1
Required:text description of the text
在 MISRA 标准中,他们谈到 DIR 1.1 Rule 1.1 必需、强制、建议。
pdftotext 并使用以下方法 link to misra rule generator 我只得到一个 dir 1.1 的输出
【问题讨论】:
【参考方案1】:规则文件的格式列在位于 cppcheck 的 GitHub 存储库中的 misra.py 插件文件的使用/帮助输出中。 python misra.py --help
输出使用部分,尽管输出中的换行符在 git bash 和 Windows 命令提示符中被弄乱了,这使得它不太有用。实际的帮助文本在 misra.py 文件中的格式很好:
Format:
<..arbitrary text..>
Appendix A Summary of guidelines
Rule 1.1
Rule text for 1.1
Rule 1.2
Rule text for 1.2
<...>
我还尝试通过问题中链接的misra rule generator 生成规则文件。当在 Windows 中使用 git bash 运行生成器时(它具有脚本所需的 pdftotext
二进制文件),我也只让输出文件包含一个条目(Dir 1.1 )。在 Ubuntu 18.04 中运行生成器会生成一个包含大部分 Misra 规则和指令的大型输出文件。 Git bash 的 pdftotext
报告它的版本是 4.00,而 Ubuntu 中的 pdftotext
报告它的版本是 0.62.0。 pdftotext
在 Git Bash 和 Ubuntu 中生成的输出非常不同,在我的情况下,Misra 规则生成器脚本仅适用于 Ubuntu 的 pdftotext
的输出。
我还注意到 Misra 规则生成器有一个错误,它会覆盖具有相同编号的规则和指令。输出不会同时包含 Dir 1.1 和 Rule 1.1,由于此处的字典处理错误cppcheck-misra-parsetexts.py
,最后解析的将覆盖前者【讨论】:
以上是关于要构建以提供给 cppcheck MISRA 附加组件的正确规则文件是啥?的主要内容,如果未能解决你的问题,请参考以下文章