揮発性のメモ2

http://d.hatena.ne.jp/iww/

AdLintで静的解析

結論から言うと、AdLintで静的解析してもあんまり意味なかった。

  • インストールも使い方もそこそこ簡単
  • 出てくるメッセージも読みやすい
  • mallocのfree忘れ、openのclose忘れなどは検知しない
  • gccでWarningレベルガン上げにした方がずっと役立つ
  • そもそも AdLint の開発がもう止まっている

インストール

AdLint - Browse /adlint/3.2.14 at SourceForge.net
sourceforgeからtar.gzをダウンロードし、適当なところに展開し adlint/bin にパスを通す。

解析準備

解析したいソースをフォルダごとどこかに用意する
フォルダ内で次のコマンドを実行

adlintize

GNUmakefile と、adlint_* というファイルが生成される。


このうち、 adlint_traits.yml というファイルにインクルードパスを書くところがあり
これに書かないと /use/include すら検知してくれないので適当に書く

compiler_traits:

  initial_header: "adlint_cinit.h"
  # Compiler specific include paths.
  # Ex.
  #   file_search_paths:
  #     - "/usr/include"
  #     - "/usr/local/include"
  file_search_paths:
        - "/usr/include"         # ★これとか
        - "/usr/include/linux"   # ★これとか