介绍一款CPP代码bug检测神器

1,124 阅读3分钟

最近使用C++开发的比较多,对于C++开发来说,内存管理是一个绕不开的永恒话题,因此在使用C++特别是指针时经常是慎之又慎, 最怕一不小心就给自己挖了一个坑,刚好最近发现了一个特别好用的C++静态代码分析利器,借助这个强大的分析工具,我们可以很好地将一些空指针, 数组越界等一些常见的bug扼杀在萌芽阶段,正所谓独乐了不如众乐乐,特将这个利器分享给大家。

这个利器就是cppcheck,它的官网是:cppcheck.sourceforge.io/

同时它还提供了在线分析的功能:cppcheck.sourceforge.io/demo/

在这个在线分析工具中,我们只需要将我们需要检测的代码拷贝粘贴到输入框,然后点击Check按钮即可进行代码分析。

当然啦,这个在线分析还是有很多不足的,比如最多只支持1024个字符,无法在线分析多文件,大项目等,如果要分析长文件,甚至是大项目,那就得安装本地使用啦, 下面我们就以CLion为例,简单介绍下cppcheck的安装和使用。

插件cppcheck的安装

首先这个强大的分析工具是有一个CLion插件的,它的连接是:plugins.jetbrains.com/plugin/8143…

我们可以直接在这个地址上进行在线安装,也可以在CLion的插件市场中搜索cppcheck进行安装。

需要注意的是这个插件仅仅是为了在CLion中自动帮我们分析项目代码,它是不包含cppcheck功能的,也就是要让这个插件正常工作,我们还得 手动安装cppcheck,然后在CLion配置好cppcheck的可执行文件的路径才行。

关于这个cppcheck核心功能的安装官网已经说得很清楚,也就是一句命令行的事情。

比如Debian系统可以通过一下命令安装:

sudo apt-get install cppcheck

Fedora的系统可以通过以下命令安装:

sudo yum install cppcheck

至于Mac系统,那肯定就是用神器包管理工具Homebrew进行安装啦:

brew install cppcheck

CLion插件配置cppcheck路径

安装好cppcheck核心工具包和CLion的cppcheck插件工具之后,我们只需要在CLion中配置一下cppcheck工具包的安装路径就可以正常使用啦。

以笔者的Mac系统的CLion为例子,打开CLion后,点击CLion-> Settings -> Other Settings -> Cppcheck Configuration

在弹出框中设置好cppcheck安装包的绝对路径即可。

如果你是使用Homebrew安装的话可以通过命令brew info cppcheck查找到cppcheck安装的具体路径。

功能实测

为了检测cppcheck这个分析工具的功能,我们新建了一个工程,输入以下代码:

void foo(int x)
{
    int buf[10];
    if (x == 1000)
        buf[x] = 0; // <- ERROR
}

int main() {
    int y[1];
    y[2] = 1;
    return 0;
}

当我们没有安装cppcheck插件时,它是这样子的,看起来没什么问题:

当我们安装了cppcheck插件之后,对于可能会发生潜在的空指针、数组越界、除数为0等等可能导致bug的地方会有高亮提示, 给人一看就有问题的感觉:

当然啦,cppcheck的功能远比这个这个例子所展示的强大,更多惊喜欢迎大家使用体验。

工具是智慧的延伸,在开发的过程选择适合你的工具,可以让我们的工作事半功倍,同行的你如果有好的开发辅助工具欢迎留言分享...

系统话学习博文推荐

音视频入门基础
C++进阶
NDK学习入门
安卓camera应用开发
ffmpeg系列
Opengl入门进阶
webRTC

关注我,一起进步,有全量音视频开发进阶路径、资料、踩坑记等你来学习...