2015年10月27日火曜日

[Coverity] CEDEC 2015 で出題されたバグクイズ

バグクイズです!(CEDEC 2015 の問題) « Coverity Blog

CEDEC 2015 で出題されたバグクイズ。
私も実際に CEDEC に行って見てきたわけですが、
3日目の問題が直ぐに解けず、なんだか悔しかったのでこの記事を書いてる次第です。
(あーだこーだしているうちに2ヶ月も経ってしまいましたが…)

ちなみに、答えはこちらです。
CEDEC 2015 Tokyo でのバグクイズの正解を発表! « Coverity Blog

Coverity 以外では検出できないのか?

検証の際に実際に使用したソースコードはこちら。
https://github.com/srz-zumix/coverity_test/tree/master/cedec_coverity

Cppcheck v1.70
まずは、フリーで使える C++ 静的解析の定番となっている Cppcheck です。
使用したのは現時点での最新バージョンである 1.7.0 です。

残念ながら、どちらの問題も検出されませんでした。

Visual Studio コード分析
次に Visual Studio です。
Visual Studio にはコード分析機能が付いています。プロジェクトプロパティのコード分析で有効にできます。

これもかなり優秀なんですが…


残念ながら、どちらの問題も検出されませんでした。

gcc/clang
最後はコンパイラーです。
Visual Studio はコード分析のときにビルドしましたが、検出できなかったので既に脱落しております。

それぞれの結果です。


どちらも delete (void*)p の問題は検出されました。

scan-build
おまけです。
scan-build は clang の静的解析ツールです。
cygwin パッケージに入ってたので使ってみました。


結果としては clang コンパイラーと一緒で delete (void*)p の検出だけでした。

まとめ
Coverity すごい!!


0 件のコメント:

コメントを投稿