概要

CppCheck是C\C++的静态代码检查工具,可以发现代码的静态缺陷,发现代码的逻辑错误,不过他并不会检查代码的语法错误,他得位置是编译器的一个补充。该工具是跨平台的工具,Windows提供了GUI和命令行工具,而Linux也提供了该命令行工具。

CppCheck

cppcheck 是一个静态代码检查工具,支持c, c++ 代码;作为编译器的一种补充检查,cppcheck对产品的源代码执行严格的逻辑检查。 执行的检查包括:
1. 自动变量检查
2. 数组的边界检查
3. class类检查
4. 过期的函数,废弃函数调用检查
5. 异常内存使用,释放检查
6. 内存泄漏检查,主要是通过内存引用指针
7. 操作系统资源释放检查,中断,文件描述符等
8. 异常STL 函数使用检查
9. 代码格式错误,以及性能因素检查

安装及其使用(Mac)

安装很简单,我使用的时brew安装工具来安装CppCheck工具的,命令是
sudo brew install cppcheck

使用一般用下面的命令:

cppcheck -j 3 --enable=all src

-j 表示工作线程个数,一般工程比较大的时候好用,src是源代码目录

运行结果示例

31/31 files checked 100% done
Checking usage of global functions..
[chromium_src/chrome/browser/ui/views/color_chooser_win.cc:71]: (style) The function 'End' is never used.
[chromium_src/chrome/browser/printing/print_job_worker.cc:70]: (style) The function 'GetAppLocale' is never used.
[chromium_src/chrome/browser/printing/print_job_worker.cc:60]: (style) The function 'GetParentView' is never used.
[chromium_src/chrome/renderer/printing/print_web_view_helper.cc:414]: (style) The function 'IsLoadingSelection' is never used.
[chromium_src/chrome/browser/ui/views/color_chooser_win.cc:28]: (style) The function 'SetSelectedColor' is never used.
[chromium_src/chrome/browser/ui/views/color_chooser_aura.cc:63]: (style) The function 'ShowColorChooser' is never used.
[chromium_src/chrome/renderer/printing/print_web_view_helper.cc:559]: (style) The function 'allowsBrokenNullLayerTreeView' is never used.
[chromium_src/chrome/renderer/printing/print_web_view_helper.cc:573]: (style) The function 'createChildFrame' is never used.
[chromium_src/chrome/renderer/printing/print_web_view_helper.cc:563]: (style) The function 'didStopLoading' is never used.
[chromium_src/chrome/renderer/printing/print_web_view_helper.cc:581]: (style) The function 'frameDetached' is never used.
(information) Cppcheck cannot find all the include files (use --check-config for details)

因为该代码是直接从GitHub弄个过来的,所以问题不是很多,不过运行结果也发现了一些问题,包括

  • 未使用的函数(妥妥滴可以用来删减不必要得代码啊)
  • (好吧...没其他问题发现了)

代码检查工具CppCheck相关推荐

  1. 静态代码检查工具 cppcheck 的使用

    CppCheck是一个C/C++代码缺陷静态检查工具.不同于C/C++编译器及其它分析工具,CppCheck只检查编译器检查不出来的bug,不检查语法错误.所谓静态代码检查就是使用一个工具检查我们写的 ...

  2. Linux开发者的CI/CD(8)静态代码检查工具cppcheck使用大全

    文章目录 1.简述 2.使用大全 3.生成可视化报告 翻译自官方手册:https://cppcheck.sourceforge.io/manual.pdf 1.简述 cppcheck 是一种 C/C+ ...

  3. cppcheck代码检查工具安装与使用技巧

    cppcheck代码检查工具安装与使用技巧 Cppcheck 是一种 C/C++ 代码缺陷静态检查工具.不同于 C/C++ 编译器及很多其它分析工具,它不检查代码中的语法错误. Cppcheck 可以 ...

  4. QT调试技巧-使用静态代码检测工具Cppcheck检测代码

    #QT调试技巧-使用静态代码检测工具Cppcheck检测代码 如需转载请标明出处:http://blog.csdn.net/itas109 QQ技术交流群:129518033 环境: Qt Creat ...

  5. JavaScript代码检查工具——JSLintMate

    JSLintMate是一款快速.简洁.易于使用JSLint(Douglas Crockford强大的JS代码检查工具)或者JSHint来检查JavaScript代码的扩展工具. JSLintMate是 ...

  6. CSS代码检查工具stylelint

    前面的话 CSS不能算是严格意义的编程语言,但是在前端体系中却不能小觑. CSS 是以描述为主的样式表,如果描述得混乱.没有规则,对于其他开发者一定是一个定时炸弹,特别是有强迫症的人群.CSS 看似简 ...

  7. 静态代码检查工具简介

    静态代码检查工具简介 在 Java 软件开发过程中,开发团队往往要花费大量的时间和精力发现并修改代码缺陷.传统的代码复审.同行评审,通过人工方式来检查缺陷仍然是一件耗时耗力的事情.Java 静态代码分 ...

  8. 代码检查工具Sonar

    sonar介绍 Sonar 是一个用于代码质量管理的开放平台.通过插件机制,Sonar 可以集成不同的测试工具,代码分析工具,以及持续集成工具.与持续集成工具(例如 Hudson/Jenkins 等) ...

  9. 最近开始研究PMD(一款采用BSD协议发布的Java程序代码检查工具)

    PMD是一款采用BSD协议发布的Java程序代码检查工具.该工具可以做到检查Java代码中是否含有未使用的变量.是否含有空的抓取块.是否含有不必要的对象等.该软件功能强大,扫描效率高,是Java程序员 ...

  10. vscode中对flake8(python静态代码检查工具)和yapf(python代码格式化工具)的设置

    在命令行下安装好flake8和yapf后在vscode中的用户设置(settings.json)中添加以下两行即可: "python.linting.flake8Enabled": ...

最新文章

  1. map和foreach的区别和应用场景_支付宝小程序和微信小程序,两者有何区别?
  2. 头戴式AR/VR 光学标定
  3. javaweb_JSP 中文字符处理程序
  4. 加载spring上下文的多种方式总结
  5. ubuntu下使用apt安装mysql_Ubuntu下通过apt包管理安装mysql
  6. SAP Analytics Cloud和Cloud for Customer之间的Single Sign on配置
  7. Mybatis(笔记)
  8. 2016科学数据大会临时通知
  9. dispatch的action带参数
  10. Oracle 11.2.0.3 Patchset
  11. SpringBoot之自定义验证码
  12. 安装Fortran语言编程环境全流程记录
  13. python连接sap接口_python 连接SAP的方法
  14. 快速清理C盘的四个方法
  15. 直播功能引入微信小程序
  16. unity-shader-头发渲染-各向异性
  17. oracle 隐式转换
  18. caj格式转换成pdf免费的有吗
  19. 【Scrum模式语言3】完成的定义
  20. 简单地人物介绍页面设计

热门文章

  1. SCHNOKA施努卡:扁线电机定子生产过程中线圈插入
  2. ES RestClient查询文档
  3. 看一看Facebook工程师是怎么评价《第一行代码》的
  4. 微博黄V怎么认证:如何快速获得微博认证?
  5. 我要写整个中文互联网界最牛逼的JVM系列教程 | 「JVM与Java体系架构」章节:官方规范下载与参考书目
  6. 【交换安全】DAI - Dynamic ARP Inspection 详解/arp欺骗/gratuitous arp
  7. 如何在TransCAD中制作美观的地图
  8. 虚拟大师怎么修改手机_[Android] 新版手机虚拟大师VMOS Pro超精简无广告2秒启动...
  9. xshell 4无法保存新建session
  10. Hello, CSDN