VSInstrVSInstr

VSInstr ツールは、バイナリをインストルメント化するために使用します。VSInstr tool is used to instrument binaries. VSInstr ツールは、次の構文を使用して起動します。It is invoked by using the following syntax:

VSInstr [/U] filename [/options]  

VSInstr ツールのオプションの説明を次の表に示します。The following table describes VSInstr tool options:

オプションOptions 説明Description
Help または ?Help or ? ヘルプを表示します。Displays help.
UU リダイレクトされたコンソール出力を Unicode で書き込みます。Writes the redirected console output as Unicode. これは、最初に指定する必要があるオプションです。It must be first option specified.
@filename 1 行につき 1 つのコマンド オプションを含む応答ファイルの名前を指定します。Specifies the name of a response file that contains one command option per line. 引用符は使用しないでください。Do not use quotation marks.
OutputPath :pathOutputPath :path インストルメント化されたイメージの保存先ディレクトリを指定します。Specifies a destination directory for the instrumented image. 出力パスを指定しなかった場合、元のバイナリは同じディレクトリ内で "Orig" という文字列を付け加えたファイル名に変更され、バイナリのコピーがインストルメント化されます。If an output path is not specified, the original binary is renamed by appending "Orig" to the file name in the same directory, and a copy of the binary is instrumented.
Exclude :funcspecExclude :funcspec プローブによるインストルメンテーションから除外する関数の仕様を指定します。Specifies a function specification to exclude from instrumentation by probes. このオプションは、関数へのプロファイリング プローブの挿入によって予測不可能な結果や好ましくない結果が引き起こされる場合に便利です。It is useful when profiling probe insertion in a function causes unpredictable or unwanted results.

同じバイナリ内の関数を参照する Exclude オプションと Include オプションは併用しないでください。Do not use Exclude and Include options that refer to functions in the same binary.

別個の Exclude オプションを使用して複数の関数の仕様を指定できます。You can specify multiple function specification with separate Exclude options.

funcspec は次のように定義されます。funcspec is a defined as:

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

<separator1> はネイティブ コードの場合は ::、マネージ コードの場合は . です。<separator1> is :: for native code, and . for managed code.

<separator2> は常に :: です<separator2> is always ::

Exclude は、コード カバレッジでサポートされています。Exclude is supported with code coverage.

ワイルドカード文字 * がサポートされています。The wildcard character * is supported. たとえば、名前空間のすべての関数を除外するには、次を使用します。For example, to exclude all functions in a namespace use:

MyNamespace::*MyNamespace::*

VSInstr /DumpFuncs を使用して、指定したバイナリ内の関数の完全な名前を一覧表示できます。You can use VSInstr /DumpFuncs to list the complete names of functions in the specified binary.
Include :funcspecInclude :funcspec プローブでインストルメント化するバイナリ内の関数の仕様を指定します。Specifies a function specification in a binary to instrument with probes. バイナリ内の他のすべての関数はインストルメント化されません。All other functions in the binaries are not instrumented.

別個の Include オプションを使用して複数の関数の仕様を指定できます。You can specify multiple function specifications with separate Include options.

同じバイナリ内の関数を参照する Include オプションと Exclude オプションは併用しないでください。Do not use Include and Exclude options that refer to functions in the same binary.

Include は、コード カバレッジでサポートされていません。Include is not supported with code coverage.

funcspec は次のように定義されます。funcspec is a defined as:

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

<separator1> はネイティブ コードの場合は ::、マネージ コードの場合は . です。<separator1> is :: for native code, and . for managed code.

<separator2> は常に :: です<separator2> is always ::

ワイルドカード文字 * がサポートされています。The wildcard character * is supported. たとえば、名前空間のすべての関数を含めるには、次を使用します。For example, to include all functions in a namespace use:

MyNamespace::*MyNamespace::*

VSInstr /DumpFuncs を使用して、指定したバイナリ内の関数の完全な名前を一覧表示できます。You can use VSInstr /DumpFuncs to list the complete names of functions in the specified binary.
DumpFuncsDumpFuncs 指定したイメージ内の関数を一覧表示します。Lists the functions within the specified image. インストルメンテーションは実行されません。No instrumentation is performed.
ExcludeSmallFuncsExcludeSmallFuncs 小規模関数 (関数呼び出しを行わない短い関数) をインストルメンテーションから除外します。Excludes small functions, which are short functions that do not make any function calls, from instrumentation. ExcludeSmallFuncs オプションを指定すると、インストルメンテーション オーバーヘッドが軽減されてインストルメンテーションの速度が向上します。The ExcludeSmallFuncs option provides for less instrumentation overhead a thus improved instrumentation speed.

小規模関数を除外すると、.vsp ファイルのサイズが小さくなり、解析に要する時間も短くなります。The exclusion of small functions also reduces the .vsp file size and time required for analysis.
Mark:{Before&#124;After&#124;Top&#124;Bottom},funcname,markidMark:{Before&#124;After&#124;Top&#124;Bottom},funcname,markid .vsp レポート ファイル内のデータ範囲の先頭または末尾を識別するために使用できるプロファイル マーク (レポート内のデータを区切るために使用する識別子) を挿入します。Inserts a profile mark (an identifier used to delimit the data in reports) that you can use to identify the start or end of a data range in the .vsp report file.

Before - 対象の関数に入る直前。Before - Immediately before the target function entry.

After - 対象の関数が終了した直後。After - Immediately after the target function exit.

Top - 対象の関数に入った直後。Top - Immediately after the target function entry.

Bottom - 対象の関数の各復帰の直前。Bottom - Immediately before each return in the target function.

funcname - 対象の関数の名前funcname - Name of the target function

Markid - プロファイル マークの識別子として使用する正の整数 (long)。Markid - A positive integer (long) to use as the identifier of the profile mark.
CoverageCoverage カバレッジ インストルメンテーションを実行します。Performs coverage instrumentation. これと併用できるオプションは VerboseOutputPathExcludeLogfile だけです。It can be It can be used only with the following options: Verbose, OutputPath, Exclude, and Logfile..
VerboseVerbose Verbose オプションは、インストルメンテーション プロセスに関する詳細情報を表示するために使用します。The Verboseoption is used to view detailed information about the instrumentation process.
NoWarn [:[Message Number[;Message Number]]]NoWarn [:[Message Number[;Message Number]]] すべてまたは特定の警告を抑制します。Suppress all or specific warnings.

Message Number - 警告番号。Message Number - the warning number. Message Number を省略した場合、すべての警告が抑制されます。If Message Number is omitted, all warnings are suppressed.

詳細については、「VSInstr の警告」を参照してください。For more information, see VSInstr Warnings.
Control :{ Thread &#124; Process &#124; Global }Control :{ Thread &#124; Process &#124; Global } 次の VSInstr データ収集制御オプションのプロファイリング レベルを指定します。Specifies the profiling level of the following VSInstr data collection control Options:

StartStart

StartOnlyStartOnly

SuspendSuspend

StopOnlyStopOnly

SuspendOnlySuspendOnly

ResumeOnlyResumeOnly

Thread - スレッド レベルのデータ収集制御関数を指定します。Thread - specifies thread-level data collection control functions. プロファイリングは、現在のスレッドに対してのみ開始または停止されます。Profiling is started or stopped only for the current thread. 他のスレッドのプロファイリング状態は影響を受けません。The profiling state of other threads is not affected. 既定値は thread です。The default is thread.

Process - プロセス レベルのプロファイリング データ収集制御関数を指定します。Process - specifies process-level profiling data collection control functions. プロファイリングは、現在のプロセスのすべてのスレッドに対して開始または停止されます。Profiling starts or stops for all threads in the current process. 他のプロセスのプロファイリング状態は影響を受けません。The profiling state of other processes is not affected.

Global - グローバル レベル (プロセス間) のデータ収集制御関数を指定します。Global - specifies global-level (cross-process) data collection control functions.

プロファイリング レベルを指定しない場合は、エラーが発生します。An error occurs if you do not specify the profiling level.
Start :{ Inside &#124; Outside },funcnameStart :{ Inside &#124; Outside },funcname データ収集を対象の関数とその関数から呼び出される子関数に制限します。Limits data collection to the target function and child functions called by that function.

Inside - 対象の関数に入った直後に StartProfile 関数を挿入します。Inside - Inserts the StartProfile function immediately after the entry to the target function. 対象の関数が戻るたびに、その直前に StopProfile 関数を挿入します。Inserts the StopProfile function immediately before each return in the target function.

Outside - 対象の関数を呼び出すたびに、その直前に StartProfile 関数を挿入します。Outside - Inserts the StartProfile function immediately before each call to the target function. 対象の関数を呼び出すたびに、その直後に StopProfile 関数を挿入します。Inserts the StopProfile function immediately after each call to the target function.

funcname - 対象の関数の名前。funcname - the name of the target function.
Suspend :{ Inside &#124; Outside },funcnameSuspend :{ Inside &#124; Outside },funcname 対象の関数とその関数から呼び出される子関数に関するデータ収集を除外します。Excludes data collection for the target function and child functions called by the function.

Inside - 対象の関数に入った直後に SuspendProfile 関数を挿入します。Inside - Inserts the SuspendProfile function immediately after the entry to the target function. 対象の関数が戻るたびに、その直前に ResumeProfile 関数を挿入します。Inserts the ResumeProfile function immediately before each return in the target function.

Outside - 対象の関数に入る直前に SuspendProfile 関数を挿入します。Outside - Inserts the SuspendProfile function immediately before the entry to the target function. 対象の関数が終了した直後に ResumeProfile 関数を挿入します。Inserts the ResumeProfile function immediately after the exit from the target function.

funcname - 対象の関数の名前。funcname - name of the target function.

対象の関数に StartProfile 関数が含まれている場合は、その前に SuspendProfile 関数が挿入されます。If the target function contains a StartProfile function, the SuspendProfile function is inserted before it. 対象の関数に StopProfile 関数が含まれている場合は、その後に ResumeProfile 関数が挿入されます。If the target function contains a StopProfile function, the ResumeProfile function is inserted after it.
StartOnly: { Before &#124; After &#124; Top &#124; Bottom },funcnameStartOnly: { Before &#124; After &#124; Top &#124; Bottom },funcname プロファイリング実行中にデータ収集を開始します。Begins data collection during a profiling run. このオプションは、StartProfile API 関数を指定の位置に挿入します。It inserts the StartProfile API function at the specified location.

Before - 対象の関数に入る直前。Before - immediately before the target function entry.

After - 対象の関数が終了した直後。After - immediately after the target function exit.

Top - 対象の関数に入った直後。Top - immediately after the target function entry.

Bottom - 対象の関数の各復帰の直前。Bottom - immediately before each return in the target function.

funcname - 対象の関数の名前。funcname - name of the target function.
StopOnly:{Before&#124;After&#124;Top&#124;Bottom},funcnameStopOnly:{Before&#124;After&#124;Top&#124;Bottom},funcname プロファイリング実行中にデータ収集を停止します。Halts data collection during a profiling run. このオプションは、StopProfile 関数を指定の位置に挿入します。It inserts the StopProfile function at the specified location.

Before - 対象の関数に入る直前。Before - immediately before the target function entry.

After - 対象の関数が終了した直後。After - immediately after the target function exit.

Top - 対象の関数に入った直後。Top - immediately after the target function entry.

Bottom - 対象の関数の各復帰の直前。Bottom - immediately before each return in the target function.

funcname - 対象の関数の名前。funcname - name of the target function.
SuspendOnly:{Before&#124;After&#124;Top&#124;Bottom},funcnameSuspendOnly:{Before&#124;After&#124;Top&#124;Bottom},funcname プロファイリング実行中にデータ収集を停止します。Halts data collection during a profiling run. このオプションは、SuspendProfile API を指定の位置に挿入します。It inserts the SuspendProfile API at the specified location.

Before - 対象の関数に入る直前。Before - immediately before the target function entry.

After - 対象の関数が終了した直後。After - immediately after the target function exit.

Top - 対象の関数に入った直後。Top - immediately after the target function entry.

Bottom - 対象の関数の各復帰の直前。Bottom - immediately before each return in the target function.

funcname - 対象の関数の名前。funcname - name of the target function.

対象の関数に StartProfile 関数が含まれている場合は、その前に SuspendProfile 関数が挿入されます。If the target function contains a StartProfile function, the SuspendProfile function is inserted before it.
ResumeOnly:{Before&#124;After&#124;Top&#124;Bottom},funcnameResumeOnly:{Before&#124;After&#124;Top&#124;Bottom},funcname プロファイリング実行中にデータ収集を開始または再開します。Begins or resumes data collection during a profiling run.

通常、このオプションは、SuspendOnly オプションによってプロファイリングが停止された後にプロファイリングを再開するために使用します。It is usually used to start profiling after a SuspendOnly option has stopped profiling. このオプションは、ResumeProfile API を指定の位置に挿入します。It inserts a ResumeProfile API at the specified location.

Before - 対象の関数に入る直前。Before - immediately before the target function entry.

After - 対象の関数が終了した直後。After - immediately after the target function exit.

Top - 対象の関数に入った直後。Top - immediately after the target function entry.

Bottom - 対象の関数の各復帰の直前。Bottom - immediately before each return in the target function.

funcname - 対象の関数の名前。funcname - name of the target function.

対象の関数に StopProfile 関数が含まれている場合は、その後に ResumeProfile 関数が挿入されます。If the target function contains a StopProfile function, the ResumeProfile function is inserted after it.

関連項目See Also

VSPerfMon VSPerfMon
VSPerfCmd VSPerfCmd
VSPerfReport VSPerfReport
VSInstr の警告 VSInstr Warnings
パフォーマンス レポートのビューPerformance Report Views