スレッドアナライザは、ソースレベルまたはバイナリレベルで計装されているコードのデータ競合の検出をサポートするようになりました。ソースレベルの計装はこのリリースでは変更されていません。
プログラムのバイナリコードを計装するには、discover ツールを使用する必要があります。このツールは、Oracle Solaris Studio に組み込まれており、discover(1) のマニュアルページで説明されています。『Oracle Solaris Studio 12.2 Discover および Uncover ユーザーズガイド』も参照してください。
データの競合を検出するためにプログラムのバイナリコードを計装するには、discover ツールの入力バイナリを次の条件でコンパイルする必要があります。
オペレーティングシステムのバージョンは、少なくとも Oracle Solaris 10 5/08 または OpenSolaris バージョン snv_70 である必要があります。
コンパイラは Sun Solaris Studio 12 Update 1 以降のリリースのものである必要があります。
いずれかのコンパイラ最適化フラグ (-xO1、-xO2、-xO3、-xO4、-xO5) を使用する必要があります。
バイナリがコンパイラオプション -xbinopt=prepare を指定してコンパイルされている場合、SPARC ベースのシステムで実行している以前のバージョンの Solaris でも discover ツールを使用できる場合があります。このコンパイラオプションについては、cc(1)、CC(1)、または f95(1) のマニュアルページを参照してください。
バイナリの名前が a.out である場合、次のコマンドで a.out_i という名前の計装されたバイナリを作成できます。
% discover -i datarace -o a.out_i a.out
詳細は、『Oracle Solaris Studio 12.2: スレッドアナライザユーザーズガイド』または tha(1) のマニュアルページを参照してください。