VSInstr

更新 : 2007 年 11 月

VSInstr ツールは、バイナリをインストルメントするために使用します。VSInstr ツールを起動するには、次の構文を使用します。

VSInstr [/U] filename [/options]

VSInstr ツールのオプションの説明を次の表に示します。

オプション

説明

HELP または?

ヘルプを表示します。

U

U オプションは、リダイレクトされたコンソール出力を Unicode として書き出します。最初に指定する必要があります。

@filename

応答ファイルには、行ごとに 1 つのコマンド オプションを指定する必要があります。引用符は使用しないでください。

OUTPUTPATH:path

インストルメントされたイメージの保存先ディレクトリ。出力パスを指定しなかった場合、元のバイナリは同じディレクトリ内で "Orig"という文字列を付け加えた名前に変更されます。インストルメンテーションには、バイナリのコピーが使用されます。

CONTROL:{THREAD|PROCESS|GLOBAL}

CONTROL オプションは、次のデータ収集制御関数のプロファイリング レベルを指定するために使用します。

StartProfile

StopProfile

SuspendProfile

ResumeProfile

THREAD - スレッド レベルのデータ収集制御関数を指定します。プロファイリングは、現在のスレッドに対してのみ開始または停止されます。他のスレッドのプロファイリング状態は影響を受けません。既定値は thread です。

PROCESS - プロセス レベルのプロファイリング データ収集制御関数を指定します。プロファイリングは、現在のプロセスのすべてのスレッドに対して開始または停止されます。他のプロセスのプロファイリング状態は影響を受けません。

GLOBAL - グローバル レベル (プロセス間) のデータ収集制御関数を指定します。

プロファイリング レベルを指定しなかった場合は、エラーが発生します。

START:{INSIDE|OUTSIDE},funcname

START オプションは、データ収集を対象の関数とその関数から呼び出される子関数に制限するために使用します。

INSIDE - 対象の関数に入った直後に StartProfile 関数を挿入します。対象の関数で制御が戻る直前に StopProfile 関数を挿入します。

OUTSIDE - 対象の関数をそれぞれ呼び出す直前に StartProfile 関数を挿入します。対象の関数をそれぞれ呼び出した直後に StopProfile 関数を挿入します。

funcname - 対象の関数の名前です。

SUSPEND:{INSIDE|OUTSIDE},funcname

SUSPEND オプションは、対象の関数とその関数から呼び出される子関数のデータ収集を除外するために使用します。

INSIDE - 対象の関数に入った直後に SuspendProfile 関数を挿入します。対象の関数で制御が戻る直前に ResumeProfile 関数を挿入します。

OUTSIDE - 対象の関数に入る直前に SuspendProfile 関数を挿入します。対象の関数が終了した直後に ResumeProfile 関数を挿入します。

funcname - 対象の関数の名前です。

対象の関数に StartProfile 関数が含まれている場合は、SuspendProfile 関数がその前に挿入されます。対象の関数に StopProfile 関数が含まれている場合は、ResumeProfile 関数がその後に挿入されます。

STARTONLY:{BEFORE|AFTER|TOP|BOTTOM},funcname

STARTONLY オプションは、プロファイリングの実行中にデータ収集を開始するために使用します。このオプションは、StartProfile API 関数を指定の位置に挿入します。

BEFORE - 対象の関数に入る直前。

AFTER - 対象の関数が終了した直後。

TOP - 対象の関数に入った直後。

BOTTOM - 対象の関数で制御が戻る直前。

funcname - 対象の関数の名前です。

STOPONLY:{BEFORE|AFTER|TOP|BOTTOM},funcname

STOPONLY オプションは、プロファイリングの実行中にデータ収集を中断するために使用します。このオプションは、StopProfile 関数を指定の位置に挿入します。

BEFORE - 対象の関数に入る直前。

AFTER - 対象の関数が終了した直後。

TOP - 対象の関数に入った直後。

BOTTOM - 対象の関数で制御が戻る直前。

funcname - 対象の関数の名前です。

SUSPENDONLY:{BEFORE|AFTER|TOP|BOTTOM},funcname

SUSPENDONLY オプションは、プロファイリングの実行中にデータ収集を中断するために使用します。このオプションは、SuspendProfile API 関数を指定の位置に挿入します。

BEFORE - 対象の関数に入る直前。

AFTER - 対象の関数が終了した直後。

TOP - 対象の関数に入った直後。

BOTTOM - 対象の関数で制御が戻る直前。

funcname - 対象の関数の名前です。

対象の関数に StartProfile 関数が含まれている場合は、SuspendProfile 関数がその前に挿入されます。

RESUMEONLY:{BEFORE|AFTER|TOP|BOTTOM},funcname

RESUMEONLY オプションは、プロファイリングの実行中にデータ収集を開始または再開するために使用します。

通常、RESUMEONLY オプションは、SUSPENDONLY オプションによってプロファイリングが停止された後にプロファイリングを再開するために使用します。このオプションは、ResumeProfile API 関数を指定の位置に挿入します。

BEFORE - 対象の関数に入る直前。

AFTER - 対象の関数が終了した直後。

TOP - 対象の関数に入った直後。

BOTTOM - 対象の関数で制御が戻る直前。

funcname - 対象の関数の名前です。

対象の関数に StopProfile 関数が含まれている場合は、ResumeProfile 関数がその後に挿入されます。

EXCLUDE:funcspec

EXCLUDE オプションは、プローブによるインストルメンテーションから除外する関数指定を指定します。このオプションは、関数へのプロファイリング プローブの挿入によって予測不可能な結果や好ましくない結果が引き起こされる場合に便利です。

同じバイナリ内の関数を参照する EXCLUDE オプションと INCLUDE オプションを使用しないでください。

別個の EXCLUDE オプションを使用して複数の関数指定を指定できます。

funcspec は次のように定義します。

[namespace<separator1>] [class<separator2>]function

<separator1> には、ネイティブ コードの場合は :: を、マネージ コードの場合は . を指定します。

<separator2> は常に :: です。

EXCLUDE オプションは、コード カバレッジでサポートされます。

名前空間内のすべての関数を除外するには、次のようにワイルドカード文字を使用します。

MyNamespace::*

INCLUDE:funcspec

INCLUDE オプションは、プローブと共にインストルメントするバイナリ内の関数指定を指定します。バイナリ内のその他の関数はインストルメントされません。

別個の INCLUDE オプションを使用して複数の関数指定を指定できます。

同じバイナリ内の関数を参照する INCLUDE オプションと EXCLUDE オプションを使用しないでください。

INCLUDE オプションは、コード カバレッジでサポートされません。

funcspec は次のように定義します。

[namespace<separator1>] [class<separator2>]function

<separator1> には、ネイティブ コードの場合は :: を、マネージ コードの場合は . を指定します。

<separator2> は常に :: です。

EXCLUDESMALLFUNCS

小規模関数 (関数呼び出しを行わない短い関数) をインストルメンテーションから除外します。EXCLUDESMALLFUNCS オプションを指定すると、インストルメンテーション オーバーヘッドが軽減するため、インストルメンテーションの速度が向上します。

小規模関数を除外すると、.vsp ファイルのサイズが小さくなり、分析に要する時間も短くなります。

MARK:{BEFORE|AFTER|TOP|BOTTOM},funcname,markid

MARK オプションは、対象の関数に入るときまたは終了するときに MarkProfile API 関数を挿入します。MarkProfile API 関数は、.vsp レポート ファイル内のデータ範囲の先頭または末尾を識別するために使用できるプロファイル マーク (レポート内のデータを区切るために使用する識別子) を挿入します。

BEFORE- 対象の関数に入る直前。

AFTER - 対象の関数が終了した直後。

TOP- 対象の関数に入った直後。

BOTTOM - 対象の関数で制御が戻る直前。

funcname - 対象の関数の名前です。

Markid - プロファイル マークの識別子として使用する正の整数 (long)。

COVERAGE

COVERAGE オプションは、カバレッジ インストルメンテーションを実行します。このオプションは、OUTPUTPATH オプションと一緒に使用できます。

VERBOSE

VERBOSE オプションは、インストルメンテーション プロセスに関する詳細情報を表示するために使用します。

NOWARN[:[Message Number[;Message Number]]]

NOWARN オプションは、すべての警告または特定の警告を出力しないようにするために使用します。

Message Number - 警告番号です。Message Number を省略した場合、すべての警告が出力されなくなります。

詳細については、「VSInstr の警告」を参照してください。

DUMPFUNCS

DUMPFUNCS オプションは、指定されたイメージ内の関数を表示します。インストルメンテーションは実行されません。

参照

参照

VSPerfMon

VSPerfCmd

VSPerfReport

VSInstr の警告

プロファイリング ツール レポートの列定義