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

Jack Bates via cfe-dev cfe-dev at lists.llvm.org
Thu Jan 26 14:23:38 PST 2017


Thanks for offering to help me get to the bottom of this.

Here's the output of scan-build-py [1]. I ran it as follows:


   $ PATH="~/Desktop/llvm/tools/clang/tools/scan-build-py/bin:$PATH" 
scan-build ./configure
   $ PATH="~/Desktop/llvm/tools/clang/tools/scan-build-py/bin:$PATH" 
scan-build -v -v make V=1 2>&1 > ~/Desktop/scan-build-$(date +%s)


Some lines were printed on the console, the last of which was:


   scan-build: WARNING: Removing directory 
'/tmp/scan-build-2017-01-24-14-28-09-932827-5xhMxQ' because it contains 
no report.


I suspect scan-build-py is using the version of Clang installed on my 
system -- which is only version 3.8.1. How do I get it to use the 
version that I built?

Here's the output of the commands you listed:


   $ PATH="~/Desktop/llvm/tools/clang/tools/scan-build-py/bin:$PATH" env
 
PATH=~/Desktop/llvm/tools/clang/tools/scan-build-py/bin:/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games
 
LS_COLORS=rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:mi=00:su=37;41:sg=30;43:ca=30;41:tw=30;42:ow=34;42:st=37;44:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arc=01;31:*.arj=01;31:*.taz=01;31:*.lha=01;31:*.lz4=01;31:*.lzh=01;31:*.lzma=01;31:*.tlz=01;31:*.txz=01;31:*.tzo=01;31:*.t7z=01;31:*.zip=01;31:*.z=01;31:*.Z=01;31:*.dz=01;31:*.gz=01;31:*.lrz=01;31:*.lz=01;31:*.lzo=01;31:*.xz=01;31:*.zst=01;31:*.tzst=01;31:*.bz2=01;31:*.bz=01;31:*.tbz=01;31:*.tbz2=01;31:*.tz=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.war=01;31:*.ear=01;31:*.sar=01;31:*.rar=01;31:*.alz=01;31:*.ace=01;31:*.zoo=01;31:*.cpio=01;31:*.7z=01;31:*.rz=01;31:*.cab=01;31:*.jpg=01;35:*.jpeg=01;35:*.mjpg=01;35:*.mjpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.svg=01;35:*.svgz=01;35:*.mng=01;35:*.pcx=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.m2v=01;35:*.mkv=01;35:*.webm=01;35:*.ogm=01;35:*.mp4=01;35:*.m4v=01;35:*.mp4v=01;35:*.vob=01;35:*.qt=01;35:*.nuv=01;35:*.wmv=01;35:*.asf=01;35:*.rm=01;35:*.rmvb=01;35:*.flc=01;35:*.avi=01;35:*.fli=01;35:*.flv=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.yuv=01;35:*.cgm=01;35:*.emf=01;35:*.ogv=01;35:*.ogx=01;35:*.aac=00;36:*.au=00;36:*.flac=00;36:*.m4a=00;36:*.mid=00;36:*.midi=00;36:*.mka=00;36:*.mp3=00;36:*.mpc=00;36:*.ogg=00;36:*.ra=00;36:*.wav=00;36:*.oga=00;36:*.opus=00;36:*.spx=00;36:*.xspf=00;36:
   _LXSESSION_PID=3090
   XDG_CONFIG_HOME=/home/nottheoilrig/.config
   LESSCLOSE=/usr/bin/lesspipe %s %s
   XDG_MENU_PREFIX=lxde-
   BYOBU_COLOR_TERM=tmux-256color
   BYOBU_ULIMIT=ulimit
   LANG=en_CA.UTF-8
   GDM_LANG=en_CA.utf8
   LESS=FiRX
   DISPLAY=:0.0
   COMP_WORDBREAKS=
   "'><;|&(:
   BYOBU_CONFIG_DIR=/home/nottheoilrig/.config/byobu
   OLDPWD=/home/nottheoilrig/Desktop/trafficserver
   BYOBU_DARK=#333333
   BYOBU_LIGHT=#EEEEEE
   XDG_VTNR=7
   SSH_AUTH_SOCK=/home/nottheoilrig/.config/byobu/.ssh-agent
   BYOBU_PREFIX=/usr
   XDG_SESSION_ID=2
   XDG_GREETER_DATA_DIR=/var/lib/lightdm/data/nottheoilrig
   BYOBU_TTY=/dev/pts/0
   USER=nottheoilrig
   DESKTOP_SESSION=LXDE
   BYOBU_TERM=tmux-256color
   BYOBU_HIGHLIGHT=#DD4814
   BYOBU_DISTRO=Debian GNU/Linux
   PWD=/home/nottheoilrig/Desktop/trafficserver
   HOME=/home/nottheoilrig
   BYOBU_PAGER=sensible-pager
   SSH_AGENT_PID=3128
   QT_ACCESSIBILITY=1
   TMUX=/tmp/tmux-1000/default,3633,1
   XDG_SESSION_TYPE=x11
 
XDG_DATA_DIRS=/usr/local/share:/usr/share:/usr/share/gdm:/var/lib/menu-xdg:/usr/local/share/:/usr/share/:/usr/share/gdm/:/var/lib/menu-xdg/
   BYOBU_DATE=%Y-%m-%d
   BYOBU_CHARMAP=UTF-8
   BYOBU_PYTHON=python2
   XDG_SESSION_DESKTOP=lightdm-xsession
   EMAIL=jack at nottheoilrig.com
   BYOBU_READLINK=readlink
   SAL_USE_VCLPLUGIN=gtk
   SHELLCHECK_OPTS=--exclude 
SC1090,SC1091,SC2015,SC2016,SC2034,SC2139,SC2148,SC2154,SC2164
   GTK_MODULES=gail:atk-bridge
   BYOBU_WINDOW_NAME=-
   SHELL=/bin/bash
   TERM=tmux-256color
   XDG_SEAT_PATH=/org/freedesktop/DisplayManager/Seat0
   BYOBU_SED=sed
   XDG_CURRENT_DESKTOP=LXDE
   QT_LINUX_ACCESSIBILITY_ALWAYS_ON=1
   BYOBU_BACKEND=tmux
   TMUX_PANE=%105
   SHLVL=3
   XDG_SEAT=seat0
   LANGUAGE=en_CA:en
   BYOBU_ACCENT=#75507B
   PROMPT_COMMAND=__git_ps1 '\[\e]0;\u@\h: 
\w\a\]${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]' 
'$ '
   BYOBU_TIME=%H:%M:%S
   BYOBU_RUN_DIR=/dev/shm/byobu-nottheoilrig-sHS6qxFP
   GDMSESSION=lightdm-xsession
   LOGNAME=nottheoilrig
 
DBUS_SESSION_BUS_ADDRESS=unix:abstract=/tmp/dbus-2WJcoS95Ka,guid=82534bc0612a3fd0c12658d957f2ba5b
   XDG_RUNTIME_DIR=/run/user/1000
   XAUTHORITY=/home/nottheoilrig/.Xauthority
   XDG_SESSION_PATH=/org/freedesktop/DisplayManager/Session0
   XDG_CONFIG_DIRS=/etc/xdg
   LESSOPEN=| /usr/bin/lesspipe %s
   _=/usr/bin/env

   $ PATH="~/Desktop/llvm/tools/clang/tools/scan-build-py/bin:$PATH" 
command -v cc
   /usr/bin/cc

   $ PATH="~/Desktop/llvm/tools/clang/tools/scan-build-py/bin:$PATH" 
command -v c++
/usr/bin/c++

   $ PATH="~/Desktop/llvm/tools/clang/tools/scan-build-py/bin:$PATH" 
command -v clang
   /usr/bin/clang

   $ PATH="~/Desktop/llvm/tools/clang/tools/scan-build-py/bin:$PATH" 
command -v clang++
   /usr/bin/clang++

   $ PATH="~/Desktop/llvm/tools/clang/tools/scan-build-py/bin:$PATH" cc -v
   Using built-in specs.
   COLLECT_GCC=cc
   COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/6/lto-wrapper
   Target: x86_64-linux-gnu
   Configured with: ../src/configure -v --with-pkgversion='Debian 
6.2.1-5' --with-bugurl=file:///usr/share/doc/gcc-6/README.Bugs 
--enable-languages=c,ada,c++,java,go,d,fortran,objc,obj-c++ 
--prefix=/usr --program-suffix=-6 --program-prefix=x86_64-linux-gnu- 
--enable-shared --enable-linker-build-id --libexecdir=/usr/lib 
--without-included-gettext --enable-threads=posix --libdir=/usr/lib 
--enable-nls --with-sysroot=/ --enable-clocale=gnu 
--enable-libstdcxx-debug --enable-libstdcxx-time=yes 
--with-default-libstdcxx-abi=new --enable-gnu-unique-object 
--disable-vtable-verify --enable-libmpx --enable-plugin 
--enable-default-pie --with-system-zlib --disable-browser-plugin 
--enable-java-awt=gtk --enable-gtk-cairo 
--with-java-home=/usr/lib/jvm/java-1.5.0-gcj-6-amd64/jre 
--enable-java-home 
--with-jvm-root-dir=/usr/lib/jvm/java-1.5.0-gcj-6-amd64 
--with-jvm-jar-dir=/usr/lib/jvm-exports/java-1.5.0-gcj-6-amd64 
--with-arch-directory=amd64 
--with-ecj-jar=/usr/share/java/eclipse-ecj.jar --enable-objc-gc=auto 
--enable-multiarch --with-arch-32=i686 --with-abi=m64 
--with-multilib-list=m32,m64,mx32 --enable-multilib --with-tune=generic 
--enable-checking=release --build=x86_64-linux-gnu 
--host=x86_64-linux-gnu --target=x86_64-linux-gnu
   Thread model: posix
   gcc version 6.2.1 20161124 (Debian 6.2.1-5)

   $ PATH="~/Desktop/llvm/tools/clang/tools/scan-build-py/bin:$PATH" c++ -v
   Using built-in specs.
   COLLECT_GCC=c++
   COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/6/lto-wrapper
   Target: x86_64-linux-gnu
   Configured with: ../src/configure -v --with-pkgversion='Debian 
6.2.1-5' --with-bugurl=file:///usr/share/doc/gcc-6/README.Bugs 
--enable-languages=c,ada,c++,java,go,d,fortran,objc,obj-c++ 
--prefix=/usr --program-suffix=-6 --program-prefix=x86_64-linux-gnu- 
--enable-shared --enable-linker-build-id --libexecdir=/usr/lib 
--without-included-gettext --enable-threads=posix --libdir=/usr/lib 
--enable-nls --with-sysroot=/ --enable-clocale=gnu 
--enable-libstdcxx-debug --enable-libstdcxx-time=yes 
--with-default-libstdcxx-abi=new --enable-gnu-unique-object 
--disable-vtable-verify --enable-libmpx --enable-plugin 
--enable-default-pie --with-system-zlib --disable-browser-plugin 
--enable-java-awt=gtk --enable-gtk-cairo 
--with-java-home=/usr/lib/jvm/java-1.5.0-gcj-6-amd64/jre 
--enable-java-home 
--with-jvm-root-dir=/usr/lib/jvm/java-1.5.0-gcj-6-amd64 
--with-jvm-jar-dir=/usr/lib/jvm-exports/java-1.5.0-gcj-6-amd64 
--with-arch-directory=amd64 
--with-ecj-jar=/usr/share/java/eclipse-ecj.jar --enable-objc-gc=auto 
--enable-multiarch --with-arch-32=i686 --with-abi=m64 
--with-multilib-list=m32,m64,mx32 --enable-multilib --with-tune=generic 
--enable-checking=release --build=x86_64-linux-gnu 
--host=x86_64-linux-gnu --target=x86_64-linux-gnu
   Thread model: posix
   gcc version 6.2.1 20161124 (Debian 6.2.1-5)

   $ PATH="~/Desktop/llvm/tools/clang/tools/scan-build-py/bin:$PATH" 
clang -v
   clang version 3.8.1-16 (tags/RELEASE_381/final)
   Target: x86_64-pc-linux-gnu
   Thread model: posix
   InstalledDir: /usr/bin
   Found candidate GCC installation: 
/usr/bin/../lib/gcc/x86_64-linux-gnu/4.9
   Found candidate GCC installation: 
/usr/bin/../lib/gcc/x86_64-linux-gnu/4.9.3
   Found candidate GCC installation: 
/usr/bin/../lib/gcc/x86_64-linux-gnu/5.4.1
   Found candidate GCC installation: 
/usr/bin/../lib/gcc/x86_64-linux-gnu/6.2.1
   Found candidate GCC installation: /usr/lib/gcc/x86_64-linux-gnu/4.9
   Found candidate GCC installation: /usr/lib/gcc/x86_64-linux-gnu/4.9.3
   Found candidate GCC installation: /usr/lib/gcc/x86_64-linux-gnu/5.4.1
   Found candidate GCC installation: /usr/lib/gcc/x86_64-linux-gnu/6.2.1
   Selected GCC installation: /usr/bin/../lib/gcc/x86_64-linux-gnu/6.2.1
   Candidate multilib: .;@m64
   Selected multilib: .;@m64

   $ PATH="~/Desktop/llvm/tools/clang/tools/scan-build-py/bin:$PATH" 
clang++ -v
   clang version 3.8.1-16 (tags/RELEASE_381/final)
   Target: x86_64-pc-linux-gnu
   Thread model: posix
   InstalledDir: /usr/bin
   Found candidate GCC installation: 
/usr/bin/../lib/gcc/x86_64-linux-gnu/4.9
   Found candidate GCC installation: 
/usr/bin/../lib/gcc/x86_64-linux-gnu/4.9.3
   Found candidate GCC installation: 
/usr/bin/../lib/gcc/x86_64-linux-gnu/5.4.1
   Found candidate GCC installation: 
/usr/bin/../lib/gcc/x86_64-linux-gnu/6.2.1
   Found candidate GCC installation: /usr/lib/gcc/x86_64-linux-gnu/4.9
   Found candidate GCC installation: /usr/lib/gcc/x86_64-linux-gnu/4.9.3
   Found candidate GCC installation: /usr/lib/gcc/x86_64-linux-gnu/5.4.1
   Found candidate GCC installation: /usr/lib/gcc/x86_64-linux-gnu/6.2.1
   Selected GCC installation: /usr/bin/../lib/gcc/x86_64-linux-gnu/6.2.1
   Candidate multilib: .;@m64
   Selected multilib: .;@m64


[1] http://nottheoilrig.com/scan-build-1485293289

On 21/01/17 07:14 PM, Laszlo Nagy via cfe-dev wrote:
> 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
> <mailto: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
>     <http://llvm.org/svn/llvm-project/llvm/trunk> llvm
>       $ cd llvm/tools
>       $ svn co http://llvm.org/svn/llvm-project/cfe/trunk
>     <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
>     <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
>     <http://nottheoilrig.com/scan-build-1484839698>
>     [2] http://nottheoilrig.com/failures <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>
>         <mailto: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>
>             <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>
>             <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>
>         <mailto: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>
>             <http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-dev
>         <http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-dev>>
>
>
>
>
>
> _______________________________________________
> cfe-dev mailing list
> cfe-dev at lists.llvm.org
> http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-dev
>


More information about the cfe-dev mailing list