はじめに
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のメニューからツール-外部ツールを選択します。
2.外部ツールの設定画面で追加ボタンをクリックします。
3.タイトルや引数などは以下のように設定します。
- タイトル:Cppcheck
- コマンド:C:\Program Files\Cppcheck\cppcheck.exe
- 引数:--enable=all --template vs $(ItemPath)
また、"出力ウインドウを使用"にチェックを入れます。
4.OKボタンをクリックして、ダイアログを閉じます。
Visual StudioからCppcheckを呼び出して、静的解析を行う
1.Visual Studioで解析したいソースコードを表示します。
2.ツールメニューから、さきほど追加したcppcheckを選びます。
3.出力ウインドウにcppcheckによる解析結果が英語で表示されます。出力ウインドウ内のエラーをダブルクリックすると、該当行にジャンプすることができます。
おわりに
以上がVisual StudioからCppcheckを呼び出して、静的解析を行う手順になります。
ソースコードのレビューやコミット前のセルフチェックに活用してください。
関連記事