.\" .\" ********************************************************************* .\" .\" * * .\" .\" * (C) 2007 Intel Corporation. * .\" .\" * * .\" .\" * 無断での引用、転載を禁じます。 * .\" .\" * * .\" .\" ********************************************************************* .TH TCHECK_CL 1 "(C) 2007" "Intel Corporation." "インテル(R) スレッドチェッカー・コマンドライン" ./" ./" ./"=============================================================== .SH 名称 tcheck_cl \- インテル(R) スレッドチェッカーのコマンドラインを起動します。 ./"=============================================================== .SH 書式 .B tcheck_cl .B [ .I オプション .B ] [ -- .B ] [ .I アプリケーション・ランチャー .B ] [ .I アプリケーション・パラメーター .B ] .TP .I オプション データの収集または表示を制御します。 .TP -- tcheck_cl オプションとパラメーターのあるアプリケーション・ランチャーとの区切り文字 (オプション) です。 .TP .I アプリケーション・ランチャー アプリケーションを起動するコマンドです。 .TP .I アプリケーション・パラメーター アプリケーション・ランチャー・コマンドに追加されるパラメータ (オプション) です。 ./"=============================================================== .SH 説明 .PP tcheck_cl は、アプリケーションのスレッド化問題を解析します。スレッドチェッカーは、 バイナリーをインストルメントして、アプリケーションの実行および解析を行い、診断結果を 表示します。デフォルトでは、指定されたアプリケーションまたはアプリケーション・ランチャー を解析します。ランチャーがスクリプトの場合、または別の実行ファイルを解析する場合は、 -x や --exe_of_interest オプションを使用してください。 .SH オプション .SS 一般的なオプション .TP \fB-h\fR ショートヘルプを表示します。 .TP \fB--help\fR コマンドライン・インターフェイスの完全なヘルプを表示します。 .TP \fB-v\fR または \fB--version\fR コマンドライン・インターフェイスのバージョン情報を表示します。 .TP \fB--noinstrument\fR バイナリー・インストルメンテーションを行いません。 .TP \fB--reinstrument\fR すべてのモジュールの再インストルメンテーションを強制実行します。 .TP \fB-x\fR または \fB--exe_of_interest <実行ファイル>\fR インストルメントおよび解析する実行ファイルです。 デフォルト: <アプリケーション・ランチャー> .TP \fB-q\fR または \fB--quiet\fR 詳細を出力しません。 .sp .SS インストルメンテーション・キャッシュ・オプション .TP \fB-c\fR または \fB--clear_cache\fR インストルメンテーション・フェーズの前にインストルメンテーション・キャッシュをクリアします。 .TP \fB-d\fR または \fB--cache_dir <キャッシュ・ディレクトリー>\fR インストルメンテーション・キャッシュ用のキャッシュ・ディレクトリーを指定します。 デフォルト: /tmp/<ユーザーログイン名>__tc_cl_cache。 プラットフォームによっては、 最後に "32e" が追加されます。 .sp .SS インストルメンテーション・レベル・オプション .PP .B 注意: インストルメンテーション・スイッチの <レベル> は、次のいずれかのキーワードを指定します。 full フルイメージ functions すべての関数 api API インポート module モジュールインポート .TP \fB-m\fR または \fB--module_instrumentation_level <モジュール> <レベル>\fR \fB<モジュール>\fR に \fB<レベル>\fR のインストルメンテーションを適用します。 .TP \fB-u\fR または \fB--user_default_instrumentation <レベル>\fR ユーザーモジュールにデフォルトのインストルメンテーション・レベルを設定します。 デフォルトは、"-u functions" です。 .sp .SS 収集フェーズオプション .TP \fB --norun\fR 収集フェーズをスキップして、レポートの生成を行いません。 既知の依存問題をインストルメント します。 .TP \fB-r\fR または \fB--results <結果>\fR 出力結果ファイルの名前を指定します。ファイル名の最後に ".thr" が追加されます。 デフォルトは "-r threadchecker" で、threadchecker.thr となります。 .TP \fB-p\fR または \fB--options <コレクターオプション>\fR ランタイム解析エンジンに渡されるカンマ区切りのコレクターオプション。オンまたはオフの設定 可能なオプションに値を指定しない場合、オンとみなされます。これらのオプションは、 TC_OPTIONS 環境変数を設定して指定することもできます。ここでリストするオプションは、 環境変数で指定されるオプションに追加されます。 .sp .SS 解決フェーズオプション .TP \fB--noresolve\fR ソース情報の解決フェーズをスキップします。 .TP \fB-r\fR または \fB--results <結果>\fR 結果ファイルを指定します。結果ファイルにはソース情報が追加され、".txf" 形式で記述 されます。入力する結果ファイルは ".thr" ファイルです。 デフォルトは "-r threadchecker" です。 .sp .SS レポート・フェーズ・オプション .TP \fB-n\fR または \fB--noreport\fR レポートフェーズをスキップします。 .TP \fB-o\fR または \fB--report <レポート>\fR 出力レポートファイルを指定します。レポート形式に基づき、ファイル名にファイル拡張子が 追加されます。デフォルトは stdout です。 .TP \fB-r\fR または \fB--results <結果>\fR 入力結果ファイルを指定します。 ファイル名の最後に ".txf" が追加されます。 .TP \fB-f\fR または \fB--format <形式>\fR 指定された形式でレポートを生成します。<形式> は、次のいずれかのキーワードを指定 します。 txt - テキスト形式のレポート html - HTML 形式のレポート csv - カンマ区切りの診断結果のリスト デフォルトは "-f txt" です。 .TP \fB-w\fR または \fB--report_width <幅>\fR テキストレポートの幅。 指定しない場合、デフォルトは "-w 80" です。 .TP \fB-s\fR または \fB--stack_depth <レイヤー>\fR レポートに出力するコールスタック・レイヤーの数。 .sp .SS コレクターオプション .B 注意: 下記のオプションは、-p コマンドライン・オプションまたは --options コマンドライン・オプション の後にカンマ区切りのリストとして指定するか、TC_OPTIONS 環境変数を設定して使用 できます。たとえば、TC_OPTIONS に "file=myfile,nohelp,verbose" を設定します。 .TP \fI出力ファイルの名前\fR .TP オプション: file=<名称> 結果の出力ファイルを指定します。実行マシンのホスト名には %H メタ文字を、 Process ID には %I メタ文字を使用します。 .TP デフォルト: threadchecker.thr .TP オーバーヘッド: (なし) .TP 使用上の注意: このオプションは、インテル(R) スレッドチェッカーでインストルメントされたアプリケーションの 実行結果を出力する場所を指定します。デフォルトの出力ファイル threadchecker.thr は、 現在のディレクトリーに出力されます。次のように、メタ文字の %H と %I を使用して、 生成されるファイル名にマシン固有情報を自動的に含めることができます。 - %H を使用すると、実行マシンのホスト名が含まれます。 - %I を使用すると、結果を生成するプロセスの Process ID が含まれます。 .sp .TP \fIメッセージの表示\fR .TP オプション: [no]help - 解析中にオプションを表示します [しません]。 .TP デフォルト: nohelp .TP オーバーヘッド: (なし) .TP 使用上の注意: 通常、インテル(R) スレッドチェッカーは、解析中にオプションを表示しません。スレッドチェッカー でこのリストを表示するには、help オプションを選択します。 .sp .TP \fIレポートステータス情報\fR .TP オプション: [no]verbose - 解析中、stdout にステータスメッセージを表示します [しません]。 .TP デフォルト: noverbose .TP オーバーヘッド: (なし) .TP 使用上の注意: 解析中、スレッドチェッカーは stdout にステータスメッセージを表示して、進行状況を 知らせます。この表示を行わないようにするには、noverbose オプションを選択します。 .sp .TP \fIデッドロック状態の表示\fR .TP オプション: [no]deadlock - デッドロックを表示します [しません]。 .TP デフォルト: deadlock .TP オーバーヘッド: デッドロックの検出は、固定間隔 (数秒ごと) で行われ、最小のオーバーヘッドであるため、 少ない固定コストといえます。デッドロックを引き起こす可能性があるロックにアクセスしない 場合、このコストを回避することができます。 .TP 使用上の注意: スレッドチェッカーは、プログラム実行時にデッドロックが発生する場所を特定します。 この機能を無効にするには、nodeadlock オプションを選択してください。 .TP \fIロックサイクルの表示\fR .TP オプション: [no]cycle - ロックサイクルを表示します [しません]。 .TP デフォルト: cycle .TP オーバーヘッド: サイクルの検出は、通常、追加オーバーヘッドの 2 番目に大きな起因ですが、その影響は メモリー参照解析 (noerrors、nowarnings で無効にできる) よりはるかに小さいものです。 サイクルの検出が 2 番目に大きな起因であるのは、ロックにアクセスする度にコストが発生 するためです。 .TP 使用上の注意: スレッドチェッカーは、相互排他ロックの取得順序におけるロックサイクルの場所を特定します。 スレッドチェッカーでこの機能を無効にするには、nocycle オプションを選択してください。 .TP \fI競合状態の表示\fR .TP オプション: [no]errors - 競合状態を表示します [しません]。 オーバーヘッドを大幅に減らすには無効に してください。 .TP デフォルト: errors .TP オーバーヘッド: noerrors は実行時間の削減に最も大きな影響がありますが、メモリー参照解析を完全に 無効にするには、nowarnings と一緒に使用する必要があります。スレッドチェッカーのメモリー 参照解析タスクでは、プログラムでメモリー参照を行う度に追加コストが発生するため、データ 収集における追加オーバーヘッドの最大の起因となります。 .TP 使用上の注意: デフォルトでは、スレッドチェッカーは、競合状態やストレージ問題が発生する場所を特定します。 これらの特定にはオーバーヘッドが発生します。この機能を無効にするには、noerrors オプション を選択してください。 .TP \fI警告メッセージの表示\fR .TP オプション: [no]warnings - 初期化されていない自動変数などの警告を表示します [しません]。 オーバーヘッドを大幅に減らすには無効にしてください (特に、noerrors と一緒に使用する場合)。 .TP デフォルト: warnings .TP オーバーヘッド: noerrors は実行時間の削減に最も大きな影響がありますが、メモリー参照解析を完全に無効に するには、nowarnings と一緒に使用する必要があります。スレッドチェッカーのメモリー参照解析 タスクでは、プログラムでメモリー参照を行う度に追加コストが発生するため、データ収集における 追加オーバーヘッドの最大の起因となります。 .TP 使用上の注意: 競合状態とデッドロックに加えて、スレッドチェッカーは、初期化されていない自動変数の使用など、 それほど深刻ではないその他の問題が発生する場所を特定します。この機能を無効にするには、 nowarnings オプションを選択してください。 .TP \fIスレッド・メッセージの表示\fR .TP オプション: [no]threads - スレッドごとのスタック領域の使用を表示します [しません]。 .TP デフォルト: threads .TP オーバーヘッド: (なし) .TP 使用上の注意: スレッドチェッカーは、各スレッドにより使用されるスタック領域の量を特定します。また、スレッドの 生成および破棄を示すステータスメッセージを表示します。この機能を無効にするには、 nothreads オプションを選択してください。 .TP \fI バイトのガード・パディングの使用\fR .TP オプション: pad = - ダイナミック・メモリーをマークするために、malloc() で使用するガード・バイト (パディング) 数を設定します。パディングの設定は、必要なメモリー容量およびオーバーヘッドを 著しく増加させます。 .TP デフォルト: pad = 0 .TP オーバーヘッド: (なし) .TP 使用上の注意: スレッドチェッカーは、周辺領域へのアクセスを不正にして、動的に割り当てられたメモリー 領域外へのアクセスを発見します。ダイナミック・メモリーをマークするために malloc() で使用する ガード・バイト数は、pad オプションを使用して設定します。pad オプションは、スレッドチェッカーで インストルメント済みコードの実行に必要なメモリー容量および時間を著しく増加させます。 .TP \fI 秒のスレッドの遅延\fR .TP オプション: delay = - スレッドの開始と終了を 秒遅らせて、問題を検出できる確率を 向上させます。 .TP デフォルト: delay = 0 .TP オーバーヘッド: (なし) .TP 使用上の注意: 通常、スレッドチェッカーは、スレッドの生成と破棄をできるだけ素早く行います。スレッドチェッカーは、 寿命が重複するスレッドを監視することで問題を発見します。スレッドの開始と終了を遅らせて、 問題を検出できる確率を向上させることができます。 .TP \fI 秒を超えるストールの表示\fR .TP オプション: stall = - 秒を超える待機をストールとみなし、警告メッセージを表示します。 .TP デフォルト: stall = 3 .TP オーバーヘッド: (なし) .TP 使用上の注意: スレッドチェッカーは、リソース (例: 相互排他変数) を取得するために長時間待機しているスレッドを 検出します。スレッドの待機時間が 秒を超える場合は、ストールとみなし、警告メッセージ を表示します。 .TP \fI暗黙的なスレッド生成の検出\fR .TP オプション: [no]spontaneous - 暗黙的なスレッドの生成を表示します [しません]。暗黙的なスレッドは、 インストルメントされていないコード (たとえば、CreateRemoteThread API を使用したり、 インストルメントされていないモジュールから通常のスレッド化 API を使用する別のアプリケーション のコード) によって作成されます。 .TP デフォルト: nospontaneous .TP オーバーヘッド: ランタイムのオーバーヘッドはありません。 .TP 使用上の注意: 暗黙的なスレッドとは、インストルメントされていないコード (たとえば、CreateRemoteThread API を 使用したり、インストルメントされていないモジュールから通常のスレッド化 API を使用する別の アプリケーションのコード) によって作成されるスレッドのことです。 .TP \fI種類別問題数の制限\fR .TP Option: [no]max = - 表示する同一種類の問題の数を制限します [しません]。 個を超える診断結果は表示されません。 .TP デフォルト: nomax .TP オーバーヘッド: 制限数に達した場合、それ以降、その種類の問題の発生はチェックされず、解析量が減ります。 .TP 使用上の注意: スレッドチェッカーは、制限数を超えた種類のメッセージを無視します。 .TP \fI解析エンジンで使用するヒープサイズの制限\fR .TP オプション: [no]heap = - 解析で使用するメモリー容量を KB に制限します [しません]。 指定された容量以上のメモリーが必要な場合、スレッドチェッカーは古い統計を削除するため、 一部のエラーを見落とすことがあります。 .TP デフォルト: noheap .TP オーバーヘッド: このオプションを使用することで、解析エンジンで使用するメモリー容量を制限することができます。 制限容量に達し、メモリーコレクターがトリガーされる頻度によっては、このオプションは速度性能に 影響を与えることがあります。 .TP 使用上の注意: 指定された容量以上のメモリーが解析エンジンで必要な場合、スレッドチェッカーは古い統計を 削除するため、一部のエラーを見落とすことがあります。 .TP \fIデッドロックまたはプログラム終了時のプログラムの強制終了\fR .TP オプション: [no]terminate - プログラムが正常に終了しない場合、強制終了します [しません]。 .TP デフォルト: terminate .TP オーバーヘッド: ランタイムのオーバーヘッドはありません。 .TP 使用上の注意: プログラムが正常に終了できない場合、解析エンジンはプログラムを強制終了します。 .TP \fI複数スレッドがメモリーにアクセスするまで競合状態の検出を遅延\fR .TP オプション: [no]multimem - 既に複数のスレッドによってアクセスされているメモリー領域の競合状態のみ チェックします [しません]。解析量が大幅に減りますが、1 度しか発生しなかったエラーを 見落とすことがあります。 .TP デフォルト: nomultimem .TP オーバーヘッド: このオプションを使用すると、既に複数のスレッドによってアクセスされているメモリー領域の競合 状態のみチェックするため、解析量を大幅に減らすことができます。 .TP 使用上の注意: 解析が延期されるため、1 度だけしか発生しない一部のエラーを見落とすことがあります。 .sp .SH テクニカルサポート 製品サポート Web サイト ( \fBhttp://support.intel.com/support/performancetools/ threadchecker/\fR (英語)) では、FAQ、製品ドキュメント、製品エラッタ、一般的な問題の 解決方法にアクセスすることができます。 .sp テクニカルサポートを受けたり、製品のアップデートを入手するには、インテル(R) レジストレーション・ センター (\fBhttp://www.intel.com/software/products/registrationcenter/\fR ) で、 インテル(R) プレミアサポート・アカウントに登録してください。 .sp インテル(R) プレミアサポート ( \fBhttps://premier.intel.com/\fR (英語)) に問題を送信する 場合、[Product Name] ドロップダウン・リストから [Intel(R) Thread Checker] を選択します。 .sp 問題を送信する際は、製品のビルド番号を提供してください。ビルド番号は、tcSupport.txt ファイルに記載されています。このファイルは、インテル(R) スレッドチェッカー Linux 版をインストール したディレクトリーにあります。デフォルトのインストール・ディレクトリーは、"/opt/intel/itt" です。 .sp テクニカルサポートでは、インテル(R) プレミアサポート・アカウントを使用して、問題やその他 ご意見が送信されてから、通常、1 営業日以内に回答をお送りしています。 .sp プレミアサポートのログイン ID またはパスワードをまだ受け取っていない場合や紛失した場合、 あるいはアカウントにアクセスできない場合は、\fBhttps://registrationcenter.intel.com/ support\fRからお問い合わせください。 .sp .SH 関連資料 次のドキュメントも参照してください。 .IP README.txt .IP Release Notes.txt .IP tcheckFAQ.htm .PP これらのドキュメントは、/doc/ から利用できます。 .SH 著作権と商標について (C) 2007 Intel Corporation. 無断での引用、転載を禁じます。