狠狠撸

狠狠撸Share a Scribd company logo
より良いコードを书くための静的コード解析入門Presented by CREST
自己紹介プログラマー@NEETCREST’s Weblog(d.hatena.ne.jp/Crest) の管理人Twitterやってます。 蔼迟丑补测补尘颈锄耻趣味プログラミングとか逆アセとか、写真撮影とか、絵を描いたりカラオケしたり、博物馆に行ったりとか
静的コード解析とは静的コード解析ってなんぞや?実行ファイルを実行せずにコード解析を行う人间がやると、インスペクションとかコードレビューと呼ばれるソースコードに対して行われることが多い、ただし少数ながらオブジェクトコードに対して行う场合もある
静的コード解析の手法数学的手法表示的意味论公理的意味论操作的意味论形式的手法モデル検査抽象解釈
静的コード解析のツールC/C++LintBLASTCppcheckC++testJAVACheckstyleBugfoundC#Fortify SCAVisual Studio (Team Edition 以上)
cppcheckの紹介C++用の静的コード解析ツールオープンソースなので、導入が簡単日本語マニュアルがあるので、とっつきやすい検出できるものメモリリークバッファオーバーラン初期化されていなメンバ変数関数の不正使用不正なポインタ操作virtual でないデストラクタ
cppcheckの使い方CUIプログラムなのでコマンドラインから実行するだけ主要なコマンド--enable =all …すべてのチェック項目を実行-j num   …num個のスレッドを使って並列実行--xml           …XML形式の出力foobar> cppcheck  path > result.txt
cppcheckを使う(1)配列の境界の検出int main(){char a[10];a[10] = 0;return 0;}
cppcheckを使う(2)メモリーリークの検出int main() {char *str=(char*)malloc(sizeof(char)*10);    return 0; }
cppcheckを使う(3)初期化されていないメンバ変数の検出class CSample{public:CSample(void) { } void PrintInfo() {cout << value<<endl;  }private:int value;	//メンバ変数};
まとめ静的コード解析ツールを使うと、プログラムの「よくない兆候を発见できる」よくない兆候を早期に见つけることができれば、発生するバグの数を减らせて???

More Related Content

より良いコードを书くための