同時実行ビジュアライザー コマンドライン ユーティリティ (CVCollectionCmd)Concurrency Visualizer Command-Line Utility (CVCollectionCmd)

同時実行ビジュアライザーのコマンド ライン ユーティリティ (CVCollectionCmd.exe) を使用して、コマンド ラインからトレースを収集することで、Visual Studio 用の同時実行ビジュアライザーでトレースを表示できます。You can use the Concurrency Visualizer command-line utility (CVCollectionCmd.exe) to collect traces from the command line so that you can view them in the Concurrency Visualizer for Visual Studio . これらのツールは、Visual Studio がインストールされていないコンピューターで使用できます。The tools can be used on computers that do not have Visual Studio installed.

注意

Visual Studio 2013 以降、同時実行ビジュアライザーは任意の拡張機能となっています。Starting in Visual Studio 2013, the Concurrency Visualizer is an optional extension. (以前は、Visual Studio に含まれていました。)ダウンロード センターから Concurrency Visualizer Collection Tools for Visual Studio 2015 をダウンロードできます。(Previously it had been included in Visual Studio.) You can download the Concurrency Visualizer Collection Tools for Visual Studio 2015 from the Download Center.

同時実行ビジュアライザーのコマンド ライン ユーティリティのダウンロードDownload the Concurrency Visualizer Command-Line Utility

コマンド ライン ユーティリティをダウンロードしてインストールするには、 Concurrency Visualizer Collection Tools for Visual Studio 2015 に移動して指示に従います。To download and install the command-line utility, go to Concurrency Visualizer Collection Tools for Visual Studio 2015 and follow the instructions. 既定では、CVCollectionCmd.exe のインストール先は %ProgramFiles%\Microsoft Concurrency Visualizer Collection Tools\ (%ProgramFiles(x86)%\Microsoft Concurrency Visualizer Collection Tools\ on x64 computers) となっています。By default, CVCollectionCmd.exe is installed in %ProgramFiles%\Microsoft Concurrency Visualizer Collection Tools\ (%ProgramFiles(x86)%\Microsoft Concurrency Visualizer Collection Tools\ on x64 computers).

CVCollectionCmd を使用したトレースの収集Collect a trace with CVCollectionCmd

トレースを収集するには、CVCollectionCmd でアプリを起動するか、CVCollectionCmd にアタッチします。You can collect a trace by starting the app with CVCollectionCmd, or by attaching to it. オプションについては、以下のコマンド リファレンスを参照してください。See the command reference below for your options. 次に例を示します。For example

<Path>CVCollectionCmd /launch c:\myapp\myapp.exe /outdir c:\myapp\data  

コマンドおよびパラメーターCommands and Parameters

コマンド ライン ユーティリティにコマンドとパラメーターに関するヘルプを表示するには、コマンド プロンプトに次のコマンドを入力します。To get help about the commands and parameters in the command-line utility, type this at the command prompt:

CvCollectionCmd /?CvCollectionCmd /?

オプションOption 説明Description パラメーターParameters 戻り値Return values
クエリQuery コレクションを開始できるかどうかを返します。Returns whether collection can be started. なしNone コレクションを開始できる場合は 0。0 if collection is ready to start.

コレクションが既に実行中の場合は 1。1 if collection is already in progress.

コレクションは実行中でないが、必要な ETW セッションの 1 つ以上が既に有効になっている場合は 2。2 if collection isn't in progress, but one or more of the required ETW sessions is already enabled.
LaunchLaunch 同時実行ビジュアライザーで、指定されたプロセスを実行します。Runs the specified process under the Concurrency Visualizer. 実行可能ファイルのパス。The path of the executable. 実行が成功した場合は 0。0 if the run succeeded.

ターゲット アプリケーションを開始できなかったために実行が失敗した場合は 1。1 if the run failed because the target application couldn't be started.

CVCollectionCmd に、指定された出力ディレクトリへの書き込みアクセス許可がないために実行が失敗した場合は 13。13 if the run failed because CVCollectionCmd has insufficient permissions to write to the specified output directory.
AttachAttach システム全体でのトレースのコレクションを開始します。プロセスが指定されている場合は、そのプロセスにアタッチします。Begins collecting a system-wide trace; otherwise, attaches to a process if one is specified. なし。None. アタッチが成功した場合は 0。0 if attachment succeeded.

指定されたプロセスが無効であるか、指定があいまいなためにアタッチが失敗した場合は 1。1 if attachment failed because the specified process is invalid or ambiguous.

CVCollectionCmd に、指定された出力ディレクトリへの書き込みアクセス許可がないためにアタッチが失敗した場合は 13。13 if the attachment failed because CVCollectionCmd has insufficient permissions to write to the specified output directory.
DetachDetach コレクションを停止します。Stops collection. なし。None. デタッチが成功した場合は 0。0 if detachment succeeded.

コレクションが現在実行されていないためにデタッチが失敗した場合は 1。1 if detachment failed because collection is not currently in progress.

コレクションを停止できなかったためにデタッチが失敗した場合は 2。2 if detachment failed because collection could not be stopped.
解析Analyze 指定されたトレースを分析します。Analyzes the specified trace. CVTrace ファイルの完全パス。The full path of the CVTrace file. 分析が成功した場合は 0。0 if analysis succeeded.

システム全体のトレースが指定されている一方、ターゲット プロセスが指定されていないために分析を開始できない場合は 1。1 if analysis cannot start because the specified trace was system-wide, but no target process was specified.

システム全体のトレースではない一方、プロセスが指定されているために分析を開始できない場合は 2。2 if analysis cannot start because the trace was not system-wide and a process was specified.

指定されたプロセスが無効なために分析が失敗した場合は 3。3 if analysis failed because the specified process is invalid.

指定された CVTrace ファイルが無効なために分析が失敗した場合は 4。4 if analysis failed because the specified CVTrace file is invalid.
LaunchArgsLaunchArgs ターゲット実行可能ファイルの引数を指定します。Specifies the target executable arguments. このオプションは、Launch コマンドにのみ適用されます。This option applies to the Launch command only. アプリケーションへのコマンド ライン引数。The command-line arguments to the application. なし。None.
OutDirOutdir トレース ファイルを保存するディレクトリを指定します。Specifies the directory in which to save trace files. Launch コマンドと Attach コマンドに適用されます。Applies to the Launch and Attach commands. ディレクトリ パスまたは相対パス。A directory path or relative path. なし。None.
プロセスProcess Attach コマンドの実行時にアタッチするプロセス、または Analyze コマンドの実行時にトレースで分析するプロセスを指定します。Specifies the process to attach to when the Attach command is executed, or the process in a trace to analyze when the Analyze command is executed. Attach コマンドと Analyze コマンドに適用されます。Applies to the Attach and Analyze commands. PID またはプロセスの名前。The PID or the name of the process. なし。None.
構成Config 既定以外のコレクション設定が必要な場合、構成ファイルのパスを指定します。Specifies the path of the configuration file, if you want collection settings other than the defaults. Launch コマンド、Attach コマンド、および Analyze コマンドに適用されます。Applies to the Launch, Attach, and Analyze commands. XML 構成ファイルのディレクトリ パスまたは相対パス。The directory path or relative path of the XML configuration file. なし。None.

構成設定のカスタマイズCustomizing Configuration Settings

CVCollectionCmd を使用してトレースを収集する際に、コレクション設定をカスタマイズする必要がある場合には、構成ファイルを使用してコレクション設定を指定します。If you use CVCollectionCmd to collect traces and you want to customize the collection settings, then use a configuration file to specify them.

注意

Visual Studio を使用してトレースを収集する場合は、構成ファイルを直接変更しないでください。When you use Visual Studio to collect traces, don't directly modify the configuration file. 代わりに、 [詳細設定] ダイアログ ボックスを使用して設定を変更します。Instead, use the Advanced Settings dialog box to modify settings.

コレクション設定を変更するには、CVCollectionCmd ユーティリティを実行するコンピューター上に構成ファイルを作成します。To modify collection settings, create a configuration file on the machine where you will run the CVCollectionCmd utility. 新しい構成ファイルを作成することも、Visual Studio がインストールされているコンピューター上の構成ファイルをコピーして、そのコピーを変更することもできます。You can create the configuration file from scratch, or you can copy the configuration file on the computer that has Visual Studio installed and modify that. 構成ファイルの名前は UserConfig.xml で、保管先は [Local AppData] フォルダーです。The file is named UserConfig.xml and is located in the Local AppData folder. ユーティリティを実行するときに、Launch、Attach、または Analyze コマンドと共に Config オプションを使用します。When you run the utility, use the Config option in conjunction with the Launch, Attach, or Analyze command. Config オプションに関連付けられているパラメータに、構成ファイルのパスを指定します。In the parameter that's associated with the Config option, specify the path of the configuration file.

構成ファイルのタグConfiguration File Tags

構成ファイルは、XML ベースです。The configuration file is XML-based. 有効なタグと値を次に示します。Here are the valid tags and values:

タグTag 説明Description Values
構成Config 構成ファイル全体を区分します。Demarcates the overall config file. 以下の要素が含まれている必要があります。Must contain these elements:

- MinorVersion- MinorVersion
- MajorVersion- MajorVersion
MajorVersionMajorVersion 構成ファイルのメジャー バージョンを指定します。Specifies the major version of the config file. Visual Studio 2012Visual Studio 2012 プロジェクトの場合は、1 を指定する必要があります。Must be 1 for Visual Studio 2012Visual Studio 2012 projects. 1 が指定されていない場合、ユーティリティは機能しません。If not 1, the utility will not work.
MinorVersionMinorVersion 構成ファイルのマイナー バージョンを指定します。Specifies the minor version of the config file. Visual Studio 2012Visual Studio 2012 プロジェクトの場合は、0 を指定する必要があります。Must be 0 for Visual Studio 2012Visual Studio 2012 projects. 0 が指定されていない場合、ユーティリティは機能しません。If not 0, the utility will not work.
IncludeEnvSymbolPathIncludeEnvSymbolPath 環境シンボル パス (_NT_SYMBOL_PATH) を使用するかどうかを判別する値を設定します。Sets a value that determines whether the environment symbol path (_NT_SYMBOL_PATH) is used. - True- True
- False- False
DeleteEtlsAfterAnalysisDeleteEtlsAfterAnalysis 分析の完了時に ETL ファイルを削除するかどうかを判別する値を設定します。Sets a value that determines whether the ETL files are deleted when analysis completes. - True- True
- False- False
SymbolPathSymbolPath シンボル サーバーのパスを指定します。Specifies the path of the symbol server. 詳細については、「 Microsoft のシンボル サーバーを使用して、デバッグ シンボル ファイルを入手するには」を参照してください。For more information, see Use the Microsoft Symbol Server to obtain debug symbol files. ディレクトリ名または URL。A directory name or URL.
MarkersMarkers マーカー プロバイダーのリストが格納されます。Contains the list of marker providers. 0 個以上の MarkerProvider 要素を格納できます。May contain zero or more MarkerProvider elements.
MarkerProviderMarkerProvider 単一のマーカー プロバイダーを指定します。Specifies a single marker provider. 以下の要素が含まれている必要があります。Must contain these elements:

- Level- Level
- GUID- GUID
- Name- Name

以下の要素を含めることができます。Can contain these elements:

- Categories- Categories
- IsEnabled- IsEnabled
レベルLevel MarkerProvider の重要度レベルを設定します。Sets the importance level of a MarkerProvider. - Low- Low
- Normal- Normal
- High- High
- Critical- Critical
- Everything- Everything
GuidGuid ETW マーカー プロバイダーのグローバル一意識別子。The globally unique identifier of the ETW marker provider. GUID。A GUID.
名前Name マーカー プロバイダーの説明を指定します。Specifies the description of the marker provider. 文字列。A string.
カテゴリCategories マーカー プロバイダーについて収集するカテゴリを指定します。Specifies the categories collected for the marker provider. コンマ区切りの文字列または数値の範囲。A comma-delimited string of numbers or ranges of numbers.
IsEnabledIsEnabled マーカー プロバイダーをコレクションに有効にするかどうかを判別する値を設定します。Sets a value that determines whether the marker provider is enabled for collection. - True- True
- False- False
FilterConfigFilterConfig コレクションからフィルター処理する ETW イベントの構成オプションのリストを指定します。Specifies the list of configuration options of the ETW events that are filtered from collection. 以下の要素を含めることができます。May contain these elements:

- CollectClrEvents- CollectClrEvents
- ClrCollectionOptions- ClrCollectionOptions
- CollectSampleEvents- CollectSampleEvents
- CollectGpuEvents- CollectGpuEvents
- CollectFileIO- CollectFileIO
CollectClrEventsCollectClrEvents CLR イベントを収集するかどうかを判別する値を設定します。Set a value that determines whether CLR events are collected. - True- True
- False- False
ClrCollectionOptionsClrCollectionOptions ネイティブ アプリの CLR イベントを収集するかどうか、および NGEN ランダウン イベントを収集するかどうかを指定します。Specifies whether to collect CLR events for native apps, and whether to collect NGEN rundown events. 以下の値のいずれか、または両方を含めることも、空にすることもできます。May contain one, both, or none of these values:

- CollectForNative- CollectForNative
- DisableNGenRundown- DisableNGenRundown
CollectSampleEventsCollectSampleEvents サンプル イベントを収集するかどうかを判別する値を設定します。Sets a value that determines whether sample events are collected. - True- True
- False- False
CollectGpuEventsCollectGpuEvents DX によって生成されたイベントを収集するかどうかを判別する値を設定します。Sets a value that determines whether the events generated by DX are collected. - True- True
- False- False
CollectFileIOCollectFileIO ファイル I/O イベントを収集するかどうかを判別する値を設定します。Sets a value that determines whether file I/O events are collected. - True- True
- False- False
UserBufferSettingsUserBufferSettings ユーザー バッファー設定パラメーターのリストを指定します。Specifies the list of user buffer-settings parameters. 以下の要素が含まれている必要があります。Must contain these elements:

- BufferFlushTimer- BufferFlushTimer
- BufferSize- BufferSize
- MinimumBuffers- MinimumBuffers
- MaximumBuffers- MaximumBuffers
KernelBufferSettingsKernelBufferSettings カーネル バッファー設定パラメーターのリストを指定します。Specifies the list of kernel buffer-settings parameters. 以下の要素が含まれている必要があります。Must contain these elements:

- BufferFlushTimer- BufferFlushTimer
- BufferSize- BufferSize
- MinimumBuffers- MinimumBuffers
- MaximumBuffers- MaximumBuffers
BufferFlushTimerBufferFlushTimer ETW バッファーのフラッシュ タイマーを指定します。Specifies the flush timer of the ETW buffers. 正の整数。A positive integer.
BufferSizeBufferSize イベント トレース セッション バッファーに割り当てられるメモリーの量 (KB 単位)。Amount of memory that's allocated for each event-tracing session buffer, in kilobytes. 0 ~ 1024 の数値。A number from 0 to 1024.
MinimumBuffersMinimumBuffers イベント トレース セッションのバッファー プールに割り当てられるバッファーの最小数。The minimum number of buffers that are allocated for the buffer pool of the event-tracing session. 論理コア数の 2 倍以上の正の整数。A positive integer greater than or equal to twice the number of logical cores.
MaximumBuffersMaximumBuffers イベント トレース セッションのバッファー プールに割り当てられるバッファーの最大数。Maximum number of buffers that are allocated for the buffer pool of the event-tracing session. MinimumBuffers の値以上の数値。A number greater than or equal to MinimumBuffers.
JustMyCodeJustMyCode [マイ コードのみ] ディレクトリのリストを指定します。Specifies the list of Just My Code directories. 0 個以上の MyCodeDirectory 要素のリスト。A list of zero or more MyCodeDirectory elements.
MyCodeDirectoryMyCodeDirectory コードを格納するディレクトリを指定します。Specifies a directory that contains your code. 絶対パス。An absolute path.

Example

新しい構成ファイルを最初から作成する代わりに、以下の例をコピーして、そのコピーを必要に応じて変更できます。Instead of creating a configuration file from the beginning, you can copy the following example and then modify it to meet your requirements.

<?xml version="1.0"?>  
<LocalConfig xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" MajorVersion="1" MinorVersion="0">  

  <IncludeEnvSymbolPath>true</IncludeEnvSymbolPath>  

  <DeleteEtlsAfterAnalysis>true</DeleteEtlsAfterAnalysis>  

  <TraceLocation>C:\traces</TraceLocation>  

  <SymbolPath>http://symweb</SymbolPath>  

  <Markers>  
    <MarkerProvider Name="Default" Guid="8d4925ab-505a-483b-a7e0-6f824a07a6f0" Level="Low" />  
    <MarkerProvider Name="TPL" Guid="2e5dba47-a3d2-4d16-8ee0-6671ffdcd7b5" Level="Normal" />  
    <MarkerProvider Name="TPL Dataflow" Guid="16f53577-e41d-43d4-b47e-c17025bf4025" Level="Normal" />  
    <MarkerProvider Name="TPL Synchronization" Guid="ec631d38-466b-4290-9306-834971ba0217" Level="Normal" />  
    <MarkerProvider Name="PLINQ" Guid="159eeeec-4a14-4418-a8fe-faabcd987887" Level="Normal" />  
    <MarkerProvider Name="Concurrency Runtime" Guid="f7b697a3-4db5-4d3b-be71-c4d284e6592f" Level="Normal" />  
    <MarkerProvider Name="Scenario Markers" Guid="fb9244c9-f23a-4966-8a9c-97a51f8c355b" Level="Low" />  

    <!-- The IsEnabled and Categories elements are optional -->  
    <MarkerProvider Name="myMarker1" Guid="d0dbb3a3-895c-4ce6-96d9-28f69d664dc3" Level="Critical" IsEnabled="false" Categories="0,1,3-5,8" />  
    <MarkerProvider Name="myMarker2" Guid="03452127-a617-4302-9e30-c0d10442e4ee" Level="Low" IsEnabled="false" Categories="0,1,3-5,8-10,11-13" />  
  </Markers>  

  <FilterConfig>  
    <CollectClrEvents>true</CollectClrEvents>  
    <ClrCollectionOptions>CollectForNative DisableNGenRundown</ClrCollectionOptions>  
    <CollectSampleEvents>true</CollectSampleEvents>  
    <CollectGpuEvents>true</CollectGpuEvents>  
    <CollectFileIO>true</CollectFileIO>  
  </FilterConfig>  

  <UserBufferSettings>  
    <BufferFlushTimer>0</BufferFlushTimer>  
    <BufferSize>256</BufferSize>  
    <MinimumBuffers>512</MinimumBuffers>  
    <MaximumBuffers>1024</MaximumBuffers>  
  </UserBufferSettings>  

  <KernelBufferSettings>  
    <BufferFlushTimer>0</BufferFlushTimer>  
    <BufferSize>256</BufferSize>  
    <MinimumBuffers>512</MinimumBuffers>  
    <MaximumBuffers>1024</MaximumBuffers>  
  </KernelBufferSettings>  

  <!-- List of MyCodeDirectory directories -->  
  <JustMyCode>  
    <MyCodeDirectory>C:\myBinaries1</MyCodeDirectory>  
    <MyCodeDirectory>C:\myBinaries2</MyCodeDirectory>  
  </JustMyCode>  
</LocalConfig>