[cfe-dev] scan-build "No bugs found."

Laszlo Nagy via cfe-dev cfe-dev at lists.llvm.org
Sat Jan 21 18:14:41 PST 2017


Hi Jack,

your report about the scan-build problem is a good feedback. But not sure
how well that piece of code is maintained, or these kind of issues (lost
bug reports, redirection problem) will be addressed... I did recommend
scan-build-py as an alternative solution. That has not been released yet.
As a developer of that tool I would glad to hear feedback about it.

To use scan-build-py currently you don't need to compile the project. Just
make sure that your `PATH` environment contains the
`tools/scan-build-py/bin` directory. (This easiness planed to be changed.
;)) I'm saying it because in your second mail, you compile the Clang/LLVM
sources, but you didn't run `make install`.

Could also send somehow the output of the these commands?

$ env # looking for the CC and CXX variables
$ command -v cc
$ command -v c++
$ command -v clang
$ command -v clang++
$ cc -v
$ c++ -v
$ clang -v
$ clang++ -v

Regards,
Laszlo


On Fri, Jan 20, 2017 at 7:40 AM, Jack Bates <n02qn5 at nottheoilrig.com> wrote:

> Thanks for trying to reproduce my problem! I tried again with scan-build
> from the Clang source repository. Now I'm getting one bug and one crash. So
> I'm confident that the analyzer is doing *something*, but I still wonder
> why I'm not seeing the 22 bugs that you are?
>
> Am I running the same version of scan-build? Is there something about my
> environment that could explain the discrepancy? I'm running Debian Linux.
> Are the versions of any other tools on my system significant to this?
>
> Here's what I did this time:
>
>   $ svn co http://llvm.org/svn/llvm-project/llvm/trunk llvm
>   $ cd llvm/tools
>   $ svn co http://llvm.org/svn/llvm-project/cfe/trunk clang
>   $ cd ../..
>   $ mkdir build
>   $ cd build
>   $ cmake ../llvm
>   $ make
>   $ cd ..
>   $ git clone https://github.com/apache/trafficserver.git
>   $ cd trafficserver
>   $ autoreconf -i
>   $ ./configure
>   $ ../build/bin/scan-build -v -v make V=1 2>&1 > ~/Desktop/scan-build
>
> Here's the output [1] -- again, many lines were printed on the console
> instead. Here's the crash [2].
>
> Thanks for the tip about scan-build-py, I haven't tried that yet.
>
> [1] http://nottheoilrig.com/scan-build-1484839698
> [2] http://nottheoilrig.com/failures
>
> On 18/01/17 06:30 AM, Laszlo Nagy wrote:
>
>> Hi Jack,
>>
>> was following your recipe to analyze the traffic server. Was using the
>> scan-build-py and scan-build from Clang source repo. Both was leaving me
>> a non empty report directory with 22 bug reports.
>>
>>
>> And `scan-build` is designed to run through `configure` too. It does not
>> have a huge cost to do, so should not be an issue. But this case I
>> agree, the generated makefiles are respecting the `CC` and `CXX`
>> variables, therefore the interposition works.
>>
>> About the redirection problem. I don't know the answer. But I know a
>> workaround it. If you use the `intercept-build` and `analyze-build` from
>> scan-build-py, you can separate the interception phase from the actual
>> static analyzer runs. And when you run `analyze-build` that can be
>> redirected without this problem.
>>
>> Regards,
>> Laszlo
>>
>> On Wed, Jan 18, 2017 at 9:39 AM, Jack Bates via cfe-dev
>> <cfe-dev at lists.llvm.org <mailto:cfe-dev at lists.llvm.org>> wrote:
>>
>>     I'm running scan-build on Apache Traffic Server and getting "No bugs
>>     found.", which isn't what I expect.
>>
>>     I ran it as follows:
>>
>>       $ git clone https://github.com/apache/trafficserver.git
>>     <https://github.com/apache/trafficserver.git>
>>       $ cd trafficserver
>>       $ autoreconf -i
>>       $ ./configure
>>       $ scan-build -v -v make V=1 2>&1 > ~/Desktop/scan-build
>>
>>     Here's the output [1].
>>
>>     I didn't run ./configure through scan-build, but I conclude from the
>>     Make output that the compiler is being correctly interposed upon, so
>>     I shouldn't need to? The output indicates that the compiler is
>>     c++-analyzer.
>>
>>     The output contains lines like the following, so I conclude that the
>>     analyzer is working?
>>
>>       ANALYZE (Syntax): ../../lib/ts/ink_mutex.h ~x_pthread_mutexattr_t
>>
>>     And it contains lines like "1 warning generated.", so I conclude
>>     that there should be bugs?
>>
>>     So my first question is, why are there "No bugs found."?
>>
>>     Also, although I redirect both stdout and stderr, the lines I
>>     mentioned -- "ANALYZE ..." and "1 warning generated." -- are
>>     nonetheless printed on the console, not [1]. Why is that?
>>
>>     Thanks!
>>
>>     [1] http://nottheoilrig.com/scan-build
>>     <http://nottheoilrig.com/scan-build>
>>     _______________________________________________
>>     cfe-dev mailing list
>>     cfe-dev at lists.llvm.org <mailto:cfe-dev at lists.llvm.org>
>>     http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-dev
>>     <http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-dev>
>>
>>
>>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-dev/attachments/20170122/a97945aa/attachment.html>


More information about the cfe-dev mailing list