VSInstrVSInstr

VSInstr 도구는 이진 파일을 계측하는 데 사용됩니다.VSInstr tool is used to instrument binaries. 다음 구문을 사용하여 이 도구를 호출합니다.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 리디렉션된 콘솔 출력을 유니코드로 기록합니다.Writes the redirected console output as Unicode. 첫 번째 옵션으로 지정해야 합니다.It must be first option specified.
@filename 명령 옵션이 한 줄에 하나씩 포함된 지시 파일의 이름을 지정합니다.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.

같은 이진 파일의 함수를 참조하는 ExcludeInclude 옵션은 사용하지 마세요.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>]function[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.

같은 이진 파일의 함수를 참조하는 IncludeExclude 옵션은 사용하지 마세요.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>]function[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. Verbose, OutputPath, Exclude, Logfile 옵션과 함께 사용해야 합니다.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. 대상 함수의 각 반환 바로 앞에 StartProfile 함수를 삽입합니다.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