データフロー分析を実行し、use-defineチェーンを計算するC用の静的分析ツール(できればコマンドラインツール)を探しています。これまで、CIL、clang、lint、goanna、およびその他のいくつかの静的分析ツールを試しましたが、いずれもuse-defineチェーンを計算していません。また、IRレベル(LLVMなど)で作業することは好みませんが、IRがそれほど複雑でなければ、問題ない可能性があります。要件を満たすツールはありますか?
ありがとう!
データフロー分析を実行し、use-defineチェーンを計算するC用の静的分析ツール(できればコマンドラインツール)を探しています。これまで、CIL、clang、lint、goanna、およびその他のいくつかの静的分析ツールを試しましたが、いずれもuse-defineチェーンを計算していません。また、IRレベル(LLVMなど)で作業することは好みませんが、IRがそれほど複雑でなければ、問題ない可能性があります。要件を満たすツールはありますか?
ありがとう!
Frama -Cプラットフォームには、def/use を計算するプラグインがあり、コマンド ラインからバッチ モードで使用できます。
Cフロントエンドを備えた当社のDMS Software Reengineering Toolkitはこれを提供できます。
DMS は、基本的な解析およびフロー分析機構を提供します。C フロント エンドは、データ フローの発信元/シンク先など、C 言語の詳細を DMS に提供します。def-use チェーンは、割り当てを表す AST ノードとシンクを表す AST ノード間のリンクとして提供されます。問題の変数は、シンボル テーブルで簡単に見つけることができます。
さまざまなタイプの DMS 抽出可能フローの説明を参照してください。
カーネル コードを usedef.ml として読んでいれば、Cil はそれを行うことができます。