标签: scan-build

如何让Clang的"扫描构建"与SCons一起工作?

我有一个用SCons构建的项目,我正在尝试使用Clang Static Analyzer来分析代码.但是,在跑步时

scan-build scons
Run Code Online (Sandbox Code Playgroud)

SCons似乎忽略了引入的设置scan-build.我怎样才能做到这一点?

clang scons clang-static-analyzer scan-build

20
推荐指数
1
解决办法
3057
查看次数

使用Clang的扫描构建与scons和C++ 11

我已经添加了一切,我$PATH和我调整SConstruct设置适当的环境变量,按照这些答案[ 1,2,3 ].现在我跑的时候

scan-build --use-c++=`which clang++` scons
Run Code Online (Sandbox Code Playgroud)

构建开始,我可以看到分叉的过程scons

/path/to/c++-analyzer ... -std=c++11 ...
Run Code Online (Sandbox Code Playgroud)

目标文件成功构建,但后来出现错误:

could not find clang line
Run Code Online (Sandbox Code Playgroud)

c++-analyzer分叉进程不包含字符串时会发生此错误-cc1.但如果我检查ps aux,我清楚地看到

/path/to/clang -cc1 ...
Run Code Online (Sandbox Code Playgroud)

程序如何正确构建,但静态分析器会失败?


作为参考,如果我手动运行

scan-build clang++ <parameters from scons>
Run Code Online (Sandbox Code Playgroud)

然后构建成功并生成报告!

我也可以通过添加来"欺骗"

env["ENV"]["PATH"] = os.environ["PATH"]
Run Code Online (Sandbox Code Playgroud)

然后跑

CXX="scan-build clang++" scons
Run Code Online (Sandbox Code Playgroud)

我不能scan-build在没有scons修改的情况下自行运行SConstruct.

c++ clang scons c++11 scan-build

13
推荐指数
1
解决办法
3746
查看次数

如何排除第三方lib/dll在CLANG scan-build xcodebuild中进行分析?

我在我的项目中使用了一些开源代码和第三方库,并希望在使用scan-build文件分析我的项目时排除该代码的分析.我知道我们可以#ifndef clang_analyzer 使用这个宏来抑制代码被分析,但我不想在所有文件中复制粘贴.

或者有没有办法让分析后使用scan-build命令生成报告,而不是显示某些文件集生成的警告/错误?

提前致谢.

clang scan-build

8
推荐指数
1
解决办法
605
查看次数

scan-build make不会检测到任何错误

我有一个非常简单的.c文件,里面有一些明显的错误.

#include <stdio.h>

struct S {
  int x;
};

void f(struct S s){
}

void test() {
  struct S s;
  f(s); // warn
}

int test2(int x){
  return 5/(x-x); // warn
}

int main(){
  test();
  test2(532);
  printf("Hej\r\r");
}
Run Code Online (Sandbox Code Playgroud)

我正在尝试使用clang的静态代码分析工具(scan-build)来检测错误.当我直接在文件上运行该工具时,例如使用以下命令:

scan-build g ++ -o 1 1.c.

我确实获得了预期的输出,包括来自编译器的警告,该警告提到除以0.

scan-build:使用'/usr/lib/llvm-3.8/bin/clang'进行静态分析

1.c:在函数'int test2(int)'中:1.c:16:11:警告:除零[-Wdiv-by-zero]返回5 /(xx); ^

1.c:16:11:警告:除零返回5 /(xx);

〜^ ~~~~~生成1个警告.scan-build:找到1个bug.scan-build:运行'scan-view/tmp/scan-build-2016-07-11-152043-3028-1'来检查错误报告.

现在,我试图将该命令放入一个非常简单的Makefile中.我的Makefile的内容是:

all: 1.c
    g++ -o 1 1.c
clean:
    rm -f *.o 1
Run Code Online (Sandbox Code Playgroud)

但是,每当我使用make运行scan-build时,使用以下命令:

scan-build make

我仍然收到编译器的警告,但不是扫描构建工具!

scan-build:使用'/usr/lib/llvm-3.8/bin/clang'进行静态分析

g ++ -o 1 1.c.

1.c:在函数'int test2(int)'中:

1.c:16:11:警告:除零[-Wdiv-by-zero]返回5 …

c static-analysis makefile clang scan-build

8
推荐指数
1
解决办法
3465
查看次数

clang-tidy 会使扫描构建变得多余吗?

我有一个项目当前同时使用 scan-build 和 clang-tidy (通过 CMake 启用)。

如果我clang-analyzer-*在一组 clang-tidy 检查中启用,则使用 scan-build 是否多余?

作为参考,这里有一个关于 clang-tidy 和 clang-check 的用法的类似问题。

clang clang-static-analyzer scan-build clang-tidy

5
推荐指数
1
解决办法
1990
查看次数

clang scan-build Redhat 安装

我已经安装clang-3.4.2-7.el7.x86_64.rpm在 RHEL 7 上,它附带了 llvm,但我找不到 scan-build 实用程序。

我已经安装了 gcc 和 cmake 以及此处提到的所有其他工具,但不幸的是我无法执行 scan-build 命令。

顺便说一句,我想将它与Clang Scan-Build Plugin集成。

我在配置中遗漏了什么吗?

c++ llvm clang jenkins-plugins scan-build

4
推荐指数
1
解决办法
1651
查看次数