Cppcheck使用互斥锁定/解锁

问题描述 投票:3回答:2

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

一个例子(有错误):

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

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

mutex cppcheck
2个回答
0
投票

不,目前不支持检查锁定/解锁功能。

看起来您也在Cppcheck论坛中提出了已经有反馈的问题:https://sourceforge.net/p/cppcheck/discussion/development/thread/a7b82c3e/

DanielMarjamäki的答案中描述了当前可以使用的最佳解决方法:https://sourceforge.net/p/cppcheck/discussion/development/thread/a7b82c3e/#f237它建议使用包装函数和Cppcheck已经支持的分配/释放检查。


0
投票

您可以使用PVS-Studio分析器检测此错误。将为此代码发出V1020诊断:V1020退出该函数时不调用'mutex_unlock'函数。检查线:20,18.test.cpp。

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

© www.soinside.com 2019 - 2024. All rights reserved.