C++ C++;代码覆盖率(或其他一些静态代码分析器)和#x2B;线程安全

C++ C++;代码覆盖率(或其他一些静态代码分析器)和#x2B;线程安全,c++,multithreading,static-analysis,coverity,C++,Multithreading,Static Analysis,Coverity,今天我想知道以下几点:是否有任何工具或扩展(用于coverity或其他代码分析器),我可以在其中执行以下操作: 首先,我将设置一组规则,即哪些代码正在生成新线程,以便分析器知道代码将运行其他线程 工具必须遵循,哪些代码部分在哪些线程中,它们是在同一个线程中,还是在不同的线程中 我可以设置“规则”,即确保线程安全的代码类型:例如,MYLOCK类在线程之间锁定 前面3条的原因是:该工具应该向我显示警告,哪些代码最有可能由不同的线程调用,并且其中没有线程安全用法 谢谢试试英特尔Inspector(

今天我想知道以下几点:是否有任何工具或扩展(用于coverity或其他代码分析器),我可以在其中执行以下操作:

  • 首先,我将设置一组规则,即哪些代码正在生成新线程,以便分析器知道代码将运行其他线程
  • 工具必须遵循,哪些代码部分在哪些线程中,它们是在同一个线程中,还是在不同的线程中
  • 我可以设置“规则”,即确保线程安全的代码类型:例如,MYLOCK类在线程之间锁定
  • 前面3条的原因是:该工具应该向我显示警告,哪些代码最有可能由不同的线程调用,并且其中没有线程安全用法

谢谢

试试英特尔Inspector(也称为线程检测器)。这是动态分析,而不是静态分析。据我记忆所及,它允许对自定义锁和线程库进行一些注释/插装。

Coverity能够做到这一点IIRC。没有任何工具能够很好地完成这一点或捕获所有内容,尽管有些语言(如rust)在编译器级别强制执行线程安全,但使用静态工具查找线程安全问题对我来说似乎是一项非常困难的任务(但请证明我错了!)。也许你应该使用一个动态工具,比如?我会通读一遍,我们的项目中也有valgrind,但我并不完全了解它的功能集。És köszönöm Szepen:)