Main Content

VariableAccess

読み取り/書き込み操作と C/C++ グローバル変数の表示

説明

varList = variableAccess(resObj) は、polyspace.CodeProverResults オブジェクト resObj によって表される Code Prover 結果セットにおけるグローバル変数の分布を返します。このリストには、グローバル変数に対するすべての読み取り操作および書き込み操作も含まれます。

すべて折りたたむ

この例では、MATLAB® から Code Prover の解析結果を読み取る方法を示します。

デモの結果セットを一時フォルダーにコピーします。

resPath = fullfile(polyspaceroot,'polyspace','examples','cxx','Code_Prover_Example', ...
'Module_1','CP_Result');
userResPath = tempname;
copyfile(resPath,userResPath);

結果オブジェクトを作成します。

resObj = polyspace.CodeProverResults(userResPath);

このオブジェクトを使用してグローバル変数のリストを MATLAB table に読み取ります。

varList = variableAccess(resObj);

デモ ファイル single_file_analysis.cPolyspace® Code Prover™ 解析を実行します。以下のオプションを構成します。

  • コンパイラとして GCC 4.9 を指定します。

  • 結果を現在の作業フォルダーの results サブフォルダーに保存します。

  • ソース コード中に存在しない場合は main 関数を生成することを指定します。

proj = polyspace.Project

% Configure analysis
proj.Configuration.Sources = {fullfile(polyspaceroot, 'polyspace', 'examples',...
    'cxx', 'Code_Prover_Example', 'sources', 'single_file_analysis.c')};
proj.Configuration.TargetCompiler.Compiler = 'gnu4.9';
proj.Configuration.ResultsDir = fullfile(pwd,'results');
proj.Configuration.CodeProverVerification.MainGenerator = true;


% Run analysis
cpStatus = proj.run('codeProver');

% Read results
resObj = proj.Results;
cpSummary = variableAccess(resObj);

入力引数

すべて折りたたむ

polyspace.CodeProverResults オブジェクトとして指定された Code Prover 結果セット。

出力引数

すべて折りたたむ

1 つの Code Prover 解析のすべてのグローバル変数と、それらのグローバル変数に対する読み取り操作および書き込み操作を示すテーブル。

  • それぞれのグローバル変数について、データ型、アクセス回数などの情報がテーブルに含まれます。

  • それぞれの読み取りまたは書き込み操作について、ファイルと関数名、行番号などの情報がテーブルに含まれます。

特定の情報が結果に使用できない場合、テーブルのエントリに <undefined> が示されます。

詳細については、それぞれ以下を参照してください。

バージョン履歴

R2017a で導入