scan-build
Created 週四 30 十二月 2010
scan-build 是clang 的一個tool,其利用 calng/clang++ 作static analyze,
注意 : 用clang / clang++ 作 analyze,所以 就算你是用 gcc / g++ 去 build ,
它還是會找 clang / clang++ 作 analyze,下面有一個需要修改的地方會再次提到。
如何安裝:
http://clang.llvm.org/get_started.html#build
如何使用:
C :
網上都有教了
C++ :
目前scan-build 好像還不打算support C++,如下一則thread
http://www.mail-archive.com/llvmbugs@cs.uiuc.edu/msg10121.html
所以要 define the environment variable CCC_ANALYZER_CPLUSPLUS
接下來,執行 "scan-build --experimental-checks --use-c++=g++ make main"
可能遇到 "could not find clang line"
解晰 ccc-analyzer 後可以得知,它要抓 /usr/bin/clang++ 抓不到,
這可能是因為你有用apt-get 安裝了 clang ,而使用到了舊版的 scan-build
所以,改成
"$(LLVMROOT)/tool/clang/tool/scan-build/scan-build --experimental-checks --use-c++=g++
make main"
你可以看到他找不到後,自已跑到/usr/local/clang 去抓
scan-build: 'clang' executable not found in '~/tools/llvm/tools/clang/tools/scan-build/bin'.
scan-build: Using 'clang' from path: /usr/local/bin/clang
接下來就可以看到 report 放在 tmp/scan-build-2010-xx-xx-xx/ 了
不過目前 scan-build 好像抓不到 malloc 沒有 free 掉的部份,以及 access null ptr。
沒有留言:
張貼留言