小さい頃はエラ呼吸

いつのまにやら肺で呼吸をしています。


Visual Studio Community 2013 + CppcheckでC++コードの静的解析を行う。

f:id:replication:20150105004550p:plain

はじめに

C++のソースコードをいくら目を凝らしてレビューしてもすべての不具合を見つけることはできません。機械的にチェックできるところは、機会に任せてしまったほうが効率的です。
この記事では、Visual Studio Community 2013とCppcheckを連携させて、Visual StudioからC++のソースコードの静的解析ができるようにしてみました。

Cppcheck

CppchekはC/C++用の静的解析ツールです。メモリリーク、アロケーション(確保と解放)のミスマッチ、バッファオーバーラン、さらに多くのチェックを行ってくれます。
Cppcheckでは主に以下のチェックを実施してくれます。

  • 範囲外例外のチェック
  • クラス毎のコードチェック
  • 例外のチェック
  • メモリリークのチェック
  • 推奨されない関数の警告
  • 不正な使い方のSTLに対するチェック
  • 初期化されていない変数、未使用変数のチェック
ソフトウェアのバージョン

今回は以下の環境で動作させてみました。

  • Windows 7
  • Visual Studio Community 2013
  • Cppcheck 1.6.8
Cppcheckの入手とインストール

以下のサイトからCppcheckをダウンロードします。

インストーラを起動して、ウィザードに従いインストールを行います。

Visual StudioとCppcheckを連携する

Cppcheckのインストールが完了したら、Visual StudioとCppcheckを連携してみます。
1.Visual Studioのメニューからツール-外部ツールを選択します。
f:id:replication:20150105004931p:plain
2.外部ツールの設定画面で追加ボタンをクリックします。
3.タイトルや引数などは以下のように設定します。

  • タイトル:Cppcheck
  • コマンド:C:\Program Files\Cppcheck\cppcheck.exe
  • 引数:--enable=all --template vs $(ItemPath)

また、"出力ウインドウを使用"にチェックを入れます。
f:id:replication:20150105005054p:plain
4.OKボタンをクリックして、ダイアログを閉じます。

Visual StudioからCppcheckを呼び出して、静的解析を行う

1.Visual Studioで解析したいソースコードを表示します。
2.ツールメニューから、さきほど追加したcppcheckを選びます。
3.出力ウインドウにcppcheckによる解析結果が英語で表示されます。出力ウインドウ内のエラーをダブルクリックすると、該当行にジャンプすることができます。
f:id:replication:20150105005337p:plain

おわりに

以上がVisual StudioからCppcheckを呼び出して、静的解析を行う手順になります。
ソースコードのレビューやコミット前のセルフチェックに活用してください。

関連記事