如何使用 clang 生成 C 代码报告

问题描述 投票:0回答:1

按照主要 clang 静态分析器网页 (http://clang-analyzer.llvm.org/scan-build.html) 的指示...

我有一个小 C 文件,其中充满了令人发指的错误 (

badcode.c
):

int main(int argc, char ** argv)
{
    int j;
    int a[4];
    puts(a[j]);
    return 'a';
}

为了了解 clang 静态分析器(扫描构建)的基本原理,我运行:

scan-build -v clang badcode.c

它输出:

scan-build: Emitting reports for this run to '/tmp/scan-build-2012-08-17-1'.
scan-build: 'clang' executable not found in '/usr/share/clang/scan-build/bin'.
scan-build: Using 'clang' from path: /usr/bin/clang
badcode.c:7:2: warning: implicit declaration of function 'puts' is invalid in C99 [-Wimplicit-function-declaration]
        puts(a[j]);
        ^
1 warning generated.
scan-build: Removing directory '/tmp/scan-build-2012-08-17-1' because it contains no reports.

好吧,太好了,clang 给出了一点警告,但是 a.out 仍然产生了。为什么它不生成报告?对于任何静态分析器来说,单位化变量

j
应该是一个明显的危险信号——为什么不报告它?

我只是使用了错误的命令行参数吗?

llvm clang static-analysis
1个回答
1
投票

试试这个:

scan-build -k -V -o scan-reports xcodebuild clean build -configuration Debug -sdk [sdk-version] -xcconfig=[xconfig-certificate-file]

例如:

scan-build -k -V -o scan-reports xcodebuild clean build -configuration Debug -sdk iphoneos5.0 -xcconfig="/Users/username/config.xcconfig"

这应该创建一个 HTML 输出。

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