首页 > 解决方案 > 带互斥锁/解锁的 Cppcheck

问题描述

Cppcheck 有没有办法检查互斥锁/解锁功能?

一个例子(有错误):

void foo() {
    mutex_lock();
    if (condition) { // condition is true
        return;
    }
    mutex_unlock();
}

有没有办法 Cppcheck 可以检测到这样的问题(互斥锁保持锁定)?

标签: mutexcppcheck

解决方案


您可以使用 PVS-Studio 分析器检测此错误。将针对此代码发出V1020诊断:V1020 函数退出而未调用“mutex_unlock”函数。检查行:20、18.test.cpp。

这是一个经验诊断,它试图根据函数名称找出代码的工作方式。


推荐阅读