排他制御チェック・ツールは,排他制御期間外にグローバル変数(static変数を除く)にアクセスしている関数がないかどうか,つまり排他制御機構を使わずにいきなりグローバル変数(static変数を除く)にアクセスしている関数がないかをチェックするツールです。
ソリューション一覧 パネルを開き,排他制御チェック・ツールの[GO]ボタンをクリックすると,関数変数アクセス表 パネルが開きます。
関数がどの変数にアクセスしているのかの情報(クロス・リファレンス)を構築するため,関数変数アクセス表 パネル上のツールバーの をクリックします。
ビルドが成功するとグローバル変数(static変数を除く)にアクセスしている関数の直交表が生成されます。
直交表でチェック対象の変数を選択します。変数は複数選択可能です。
関数が変数の値を読み込んでいる場合は“R”,値を書き込んでいる場合は“W”が表示されます。かっこ内の数字は何箇所からアクセスされたかを示しています。
関数変数アクセス表 パネル上のツールバーの[排他制御漏れのチェック...]ボタンをクリックすると排他制御チェック・ツール ダイアログが開きます。
チェックはプログラムを実行し変数へのアクセス情報を記録・解析することで行います。そのため,チェックをどこで停止させるかを指定する必要があります。アドレス,またはシンボルで設定可能です。
変数へのアクセスを制御する関数(制御開始関数,制御終了関数)を設定します。制御開始関数は変数へのアクセスを禁止するために使用する関数,制御終了関数は変数へのアクセスを許可するために使用する関数です。
変数へのアクセス情報は,ソフトウェア・トレース命令をプログラム中に埋め込み,埋め込まれたソフトウェア・トレース命令がどう実行されたかを解析することによって入手します。そのため,ソフトウェア・トレース命令がプログラムに埋め込まれた状態で得た変数へのアクセス情報と,ソフトウェア・トレース命令がプログラムに埋め込まれていない状態で得たアクセス情報は,プログラムの実行タイミングの関係で同一にならない場合があります。アクセス情報を一致させた状態にしたい場合は,[ソフトウェア・トレース(DBTAG)用ビルド・オプションを今後も付加する]をチェックしたままにしておいてください。
チェックが完了すると,制御漏れを検出した箇所が,関数変数アクセス表 パネル上でエラー色で表示されます。ダブルクリック,または[Enter]キーを押下することで該当箇所をエディタで開くことができ,問題のある箇所をすぐに見つけることが可能です。