Cppcheck

Cppcheck

C C++静态分析查错

开发官网

应用介绍

C/C++ 里最难受的一类 bug,是编译器一声不吭放过去、跑起来才偶尔崩一次的那种:越界写了一个字节、指针释放完又用了一次、某条分支上变量根本没初始化。Cppcheck 不编译代码,直接分析源码把这些翻出来,而且把少误报当成设计目标——报出来的大多值得看,不会像有些工具那样刷屏几千条噪音,最后被人直接关掉。

它不要求工程能构建成功,缺头文件、依赖没装全也能分析,所以拿到一份陌生代码就能先扫一遍。两种用法:命令行那个直接塞进 CI,退出码不为零就拦住合并;图形界面那个把结果按文件和严重级别分组,点一条跳到出问题的那行,下面写清楚 CWE 编号和为什么算问题。

软件功能



抓未定义行为:越界访问、空指针解引用、释放后使用、未初始化变量、整数溢出这些真正会让程序崩的问题是它的主攻方向。

不依赖编译:不要求工程能编译通过,也不需要完整的 include 路径,有源码就能开始分析。

严重级别分档:error、warning、style、performance、portability、information 分开列,可以先只看前两档,团队按自己的标准决定哪一档拦合并。

编码规范插件:MISRA、CERT、AUTOSAR 这类行业规范以 addon 形式提供,汽车、医疗这种要证明合规的项目能直接用上。

命令行与图形界面双份:CLI 进流水线出机器可读报告;GUI 给人看,文件树、严重级别、警告详情和源码高亮在同一个窗口里。

接进现有工具链:主流 IDE 和编辑器大多有对接插件,也能直接读 Visual Studio 工程或 compile_commands.json 来确定编译单元。

开源免费:GPL 许可,Windows、macOS、Linux 都有构建。

应用截图