美文网首页
静态代码检测工具CppCheck

静态代码检测工具CppCheck

作者: wayyyy | 来源:发表于2020-05-22 22:51 被阅读0次
    CppCheck

    CppCheck 是一种 C/C++ 代码缺陷静态检查工具,它可以检测以下错误类型:

    • Dead pointers
    • Division by zero
    • Integer overflows
    • Invalid bit shift operands
    • Invalid conversions
    • Invalid usage of STL
    • Memory management
    • Null pointer dereferences
    • Out of bounds checking
    • Uninitialized variables
    • Writing const data
    工具下载安装
    错误类型严重级别分类
    • error:发现Bug时提示级别
    • warning:建议预防程序中产生Bug的提示
    • style:关系到代码整洁的编程风格提示
    • performance :可以使代码运行更有效的建议提示
    • portability :可移植性提示。64位兼容、可运行在不同编译器等等的移植性
    • information :关于检查问题过程中的一些信息提示

    默认情况下,只显示错误消息,可以通过--enable命令启动更多的检查。

    cppcheck --enable=warning file.c
    
    检查文件夹中的所有文件
    cppcheck path
    

    如果 path 是一个文件夹,cppcheck 将递归检查这个文件夹中的所有源文件。

    将结果保存到文件

    可以使用shell命令将错误信息重定向到指定文件。

    cppcheck file.c 2> err.txt
    
    启用多线程检查

    参数-j 用来确定你想要的线程数。

    cppcheck -j 4 path
    
    检查时排除某个文件或文件夹

    可以利用-i排除某些文件和文件夹

    cppcheck -isrc/b -isrc/c src
    

    这里不会检查 src/b 和 src/c 目录下的所有文件。

    XML 输出

    cppcheck 可以以 XML 格式的输出报告

    cppcheck --xml-version=2 file1.cpp
    
    集成jenkins
    #最小的参数集
    cppcheck --xml-version=2 SOURCE_DIRECTORY 2> cppcheck.xml
    
    #启用所有检查
    cppcheck --enable=all --inconclusive --xml --xml-version=2 SOURCE_DIRECTORY 2> cppcheck.xml
    
    #分析多个并行线程
    cppcheck -j 4 --enable=all --inconclusive --xml --xml-version=2 SOURCE_DIRECTORY 2> cppcheck.xml
    
    生成HTML报告

    https://blog.csdn.net/bangtuo9862/article/details/101077818
    https://www.cnblogs.com/dyllove98/p/3228543.html

    相关文章

      网友评论

          本文标题:静态代码检测工具CppCheck

          本文链接:https://www.haomeiwen.com/subject/cyixvhtx.html