并发可视化工具命令行实用工具 (CVCollectionCmd)

并发可视化工具命令行实用程序 (CVCollectionCmd.exe) 可用于收集和处理不了 Visual Studio 的计算机上的跟踪。 您可以打开,以便您可以看到这些并发可视化工具中有 Visual Studio 的计算机上的收集的跟踪。

安装和部署该应用工具

若要从 Visual Studio DVD 安装

  1. 在 DVD 上查找最上层的文件夹名为"并发可视化工具"。

  2. 在此文件夹中,运行 concvi_standalonecollection.exe。

安装从 Web 安装文件 Visual Studio

  1. 找到您下载的安装文件。 文件名称取决于您所下载的 Visual Studio 的版本。

  2. 打开命令提示符窗口,转到安装文件所在的目录。

  3. 运行命令<install file>/layout,其中install file是您下载的文件的名称。 布局命令创建一个文件夹名为"并发可视化工具"。

  4. 在"并发可视化工具"文件夹中,运行 concvi_standalonecollection.exe。

没有 Visual Studio 的计算机上部署

  1. 找到了 Visual Studio 的计算机上的 concvi_standalonecollection.exe。 (请参阅前面的两个步骤)。

  2. 将复制的计算机不具有 Visual Studio 的 concvi_standalonecollection.exe。

  3. 运行 concvi_standalonecollection.exe。

命令和参数

您可以通过使用获得这些命令和参数的帮助:

CvCollectionCmd /?

选项

说明

参数

返回值

查询

返回是否可以启动集合。

如果集合是可以开始为 0。

1 如果集合已在进行中。

如果集合不是在进度,但一个或多个所需的 2 ETW 会话已启用。

启动

将指定的进程并发可视化工具下运行。

可执行文件的路径。

0 (如果运行成功。

如果在运行失败,因为无法启动目标应用程序,则为 1。

13 如果运行失败,因为 CVCollectionCmd 没有足够的权限,将写入指定的输出目录。

附加

开始收集系统级跟踪。 如果指定,否则,将附加到进程。

无。

如果附件已成功为 0。

如果连接失败,因为指定的进程是无效的或不明确,则为 1。

13 如果附件失败,因为 CVCollectionCmd 没有足够的权限,将写入指定的输出目录。

分离

停止收集。

无。

如果成功 detachment,0。

1 如果 detachment 失败,因为集合不是当前正在进行中。

2 如果 detachment 失败,因为集合不能停止。

分析

分析指定的跟踪。

CVTrace 文件的完整路径。

0,如果分析成功。

如果无法启动分析,因为指定的跟踪的系统范围内,但是没有目标进程指定为 1。

指定如果分析不能启动,因为系统和过程跟踪不是 2。

3 如果分析失败,因为指定的进程无效。

4 如果分析失败,因为指定的 CVTrace 文件是无效的。

LaunchArgs

指定的目标可执行参数。 此选项适用于的产品发布命令。

要应用程序的命令行参数。

无。

Outdir

指定要在其中保存跟踪文件的目录。 适用于启动和连接命令。

目录路径或相对路径。

无。

进程

指定跟踪分析分析命令执行时要执行的附加命令时,要连接的进程。 适用于附加和分析命令。

PID 或进程的名称。

无。

配置

如果您希望收藏设置非默认值,指定的配置文件的路径。 适用于启动、 连接和分析命令。

目录路径或相对路径的 XML 配置文件中。

无。

自定义配置设置

如果您使用 CVCollectionCmd 收集跟踪所需的自定义设置集合,然后使用配置文件指定它们。

备注

当使用 Visual Studio 收集跟踪时,不要直接修改配置文件。相反,使用高级设置修改设置的对话框。

要修改集合的设置,创建配置文件在计算机上的运行 CVCollectionCmd 实用程序。 从零开始,您可以创建配置文件,或者可以将配置文件的计算机上已安装的 Visual Studio 的复制和修改的。 文件的名称是UserConfig.xml ,它位于本地 AppData 文件夹。 当您运行该应用工具时,配置选项一起使用的启动、 连接或分析命令。 具有相关联的配置选项的参数中指定的配置文件的路径。

Hh543788.collapse_all(zh-cn,VS.110).gif配置文件标签

配置文件是基于 XML 的。 下面是有效的标签和值:

Tag

说明

配置

Demarcates 总体配置文件。

必须将包含这些元素:

  • MinorVersion

  • MajorVersion

MajorVersion

指定配置文件的主要版本。

必须为 1 的Visual Studio 2012项目。 如果不是 1,该实用程序将不起作用。

MinorVersion

指定配置文件的次要的版本。

必须为 0,对于Visual Studio 2012项目。 如果不是 0,该实用程序将不起作用。

IncludeEnvSymbolPath

设置一个值,决定是否使用环境符号路径 (_NT_SYMBOL_PATH)。

  • True

  • False

DeleteEtlsAfterAnalysis

设置一个值,决定是否在分析完成时删除 ETL 文件。

  • True

  • False

SymbolPath

指定符号服务器的路径。 有关详细信息,请参阅使用 Microsoft 符号服务器来获得调试符号文件

目录名称或 URL。

Markers

包含标记提供程序的列表。

可能包含零个或多个 MarkerProvider 元素。

MarkerProvider

指定一个单独的标记提供程序。

必须将包含这些元素:

  • 级别

  • GUID

  • 名称

可以包含以下元素:

  • 类别

  • IsEnabled

级别

设置 MarkerProvider 的重要性级别。

  • Normal

  • Critical

  • 所有内容

Guid

ETW 标记提供程序的全局唯一标识符。

一个 GUID。

名称

指定标记提供程序的说明。

一个字符串。

类别

指定的标记提供程序收集到的类别。

以逗号分隔的数字或范围的数字字符串。

IsEnabled

设置一个值,决定是否启用标记提供程序的集合。

  • True

  • False

FilterConfig

指定集合中筛选 ETW 事件的配置选项的列表。

可能会包含这些元素:

  • CollectClrEvents

  • ClrCollectionOptions

  • CollectSampleEvents

  • CollectGpuEvents

  • CollectFileIO

CollectClrEvents

设置一个值,决定是否要收集的 CLR 事件。

  • True

  • False

ClrCollectionOptions

指定是否收集 CLR 事件对本机应用程序,以及是否收集 NGEN rundown 事件。

可能包含一个、 两个,或任何这些值:

  • CollectForNative

  • DisableNGenRundown

CollectSampleEvents

设置一个值,决定是否将收集的事件的示例。

  • True

  • False

CollectGpuEvents

设置一个值,决定是否将收集由 DX 生成的事件。

  • True

  • False

CollectFileIO

设置一个值,决定是否将收集的文件 I/O 的事件。

  • True

  • False

UserBufferSettings

指定的用户缓冲区设置参数的列表。

必须将包含这些元素:

  • BufferFlushTimer

  • BufferSize

  • MinimumBuffers

  • MaximumBuffers

KernelBufferSettings

指定内核缓冲区设置参数的列表。

必须将包含这些元素:

  • BufferFlushTimer

  • BufferSize

  • MinimumBuffers

  • MaximumBuffers

BufferFlushTimer

指定的 ETW 缓冲区刷新计时器。

正整数。

BufferSize

为每个事件跟踪会话缓冲区,以 kb 为单位分配的内存量。

一个介于 0 到 1024年。

MinimumBuffers

为事件跟踪会话的缓冲池分配缓冲区的最小数目。

正整数大于或等于两次逻辑内核的数量。

MaximumBuffers

为事件跟踪会话的缓冲池分配缓冲区的最大数量。

一个大于或等于 MinimumBuffers 的数字。

JustMyCode

指定仅我的代码目录列表。

零个或多个 MyCodeDirectory 元素的列表。

MyCodeDirectory

指定包含您的代码的目录。

绝对路径。

Hh543788.collapse_all(zh-cn,VS.110).gif示例

,而不是从头开始创建配置文件,可以复制下面的示例,然后进行修改以满足您的要求。

<?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>