Documentation Home
> Oracle Solaris Studio 12.2: スレッドアナライザユーザーズガイド
Oracle Solaris Studio 12.2: スレッドアナライザユーザーズガイド
Book Information
はじめに
第 1 章 スレッドアナライザとその機能について
1.1 スレッドアナライザの開始
1.2 データの競合とは
1.3 デッドロックとは
1.4 スレッドアナライザ使用モデル
1.4.1 データの競合を検出するための使用モデル
1.4.1.1 データの競合を検出するコードを計測する
ソースレベルの計測
バイナリレベルの計測
1.4.1.2 計測済みアプリケーションで実験を作成する
1.4.1.3 データの競合についての実験結果を検討する
1.4.2 デッドロックを検出するための使用モデル
1.4.2.1 デッドロックを検出するための実験を作成する
1.4.2.2 デッドロックの実験結果を検討する
1.4.3 データの競合およびデッドロックを検出するための使用モデル
1.5 スレッドアナライザのインタフェース
第 2 章 データの競合チュートリアル
2.1 データの競合チュートリアルのソースファイル
2.1.1 データの競合チュートリアルのソースファイルの入手
2.1.2 prime_omp.c のソースコード
2.1.3 prime_pthr.c のソースコード
2.1.3.1 prime_omp.c および prime_pthr.c でのデータの競合の影響
2.2 スレッドアナライザを使用したデータの競合の検出方法
2.2.1 コードを計測する
2.2.1.1 ソースコードを計測する
2.2.1.2 バイナリコードを計測する
2.2.2 データの競合の検出実験を作成する
2.2.3 データの競合の検出実験を検証する
2.2.3.1 スレッドアナライザを使用したデータの競合実験の表示
2.2.3.2 er_print を使用したデータの競合実験の表示
2.3 実験結果について
2.3.1 prime_omp.c でのデータの競合
2.3.2 prime_pthr.c でのデータの競合
2.3.3 データの競合の呼び出しスタックトレース
2.4 データの競合の原因の診断
2.4.1 データの競合が誤検知であるかどうかをチェックする
2.4.2 データの競合が影響のないものであるかどうかを確認する
2.4.3 データの競合ではなくバグを修正する
2.4.3.1 prime_omp.c でのバグの修正
2.4.3.2 prime_pthr.c でのバグの修正
2.5 誤検知
2.5.1 ユーザー定義の同期
2.5.2 さまざまなスレッドでリサイクルされるメモリー
2.6 影響のないデータの競合
2.6.1 素数検索用のプログラム
2.6.2 配列値の型を検証するプログラム
2.6.3 二重検査されたロックを使用したプログラム
第 3 章 デッドロックのチュートリアル
3.1 デッドロックについて
3.2 デッドロックチュートリアルのソースファイルの入手
3.2.1 din_philo.c のソースコードリスト
3.3 食事する哲学者の問題
3.3.1 哲学者がデッドロックに陥るしくみ
3.3.2 哲学者 1 の休眠時間の導入
3.4 スレッドアナライザを使用したデッドロックの検索方法
3.4.1 ソースコードをコンパイルする
3.4.2 デッドロック検出実験を作成する
3.4.3 デッドロック検出実験を検証する
3.4.3.1 スレッドアナライザを使用したデッドロック検出実験結果の表示
3.4.3.2 er_print を使用した、デッドロック検出実験結果の表示
3.5 デッドロックの実験結果について
3.5.1 デッドロックが発生した実行の検証
3.5.2 潜在的デッドロックがあるにもかかわらず完了した実行の検証
3.6 デッドロックの修正と誤検知について
3.6.1 トークンを使用した哲学者の規制
3.6.1.1 誤検知レポート
3.6.2 トークンの代替システム
付録 A スレッドアナライザで認識される API
A.1 スレッドアナライザユーザー API
A.2 認識されるその他の API
A.2.1 POSIX スレッド API
A.2.2 Solaris スレッド API
A.2.3 メモリー割り当て API
A.2.4 メモリー操作 API
A.2.5 文字列操作 API
A.2.6 OpenMP API
付録 B 役に立つヒント
B.1 アプリケーションのコンパイル
B.2 データ競合検出用アプリケーションの計測
B.3 collect を使用したアプリケーションの実行
B.4 データの競合の報告
© 2010, Oracle Corporation and/or its affiliates