スレッドアナライザは、マルチスレッドプログラムの実行を解析し、データの競合やデッドロックなどのスレッドの一般的なエラーを検出する強力なツールです。スレッドアナライザがあれば、マルチスレッドアプリケーションを簡単にデバッグでき、生産性が高まります。スレッドアナライザは、次に示す標準およびフレームワークの 1 つか、これらを組み合わせて記述されたプログラムと一緒に使用できます。
POSIX スレッド API
Oracle Solaris スレッド API
OpenMP ディレクティブ
スレッドアナライザの詳細については、tha(1) のマニュアルページとOracle Solaris Studio 12.4: スレッドアナライザユーザーズガイド を参照してください。
Oracle Solaris Studio のこのリリースでは、次の機能が追加されました。
Discover を使用したデータ競合検出のためのバイナリ計測を実行するとき、データ競合へのアクセスのために、呼び出しスタック全体が表示されます。
Oracle Solaris 10 で導入された atomic_ops API のサポート。
collect –r terminate のサポート。デッドロック検出がオンのときにデッドロックが実際に発生した場合、プロセスの終了を強制します。
データの表示とナビゲーションを改善するために、スレッドアナライザのユーザーインタフェースがパフォーマンスアナライザ用のユーザーインタフェースとともに再設計されました。詳細は、パフォーマンスアナライザのナビゲーションを参照してください。
次の図は、discover を使用してバイナリを計測したときに、スレッドアナライザが 2 つの呼び出しスタックを表示する方法を示しています。
図 7-1 スレッドアナライザウィンドウ