共用方式為


並行視覺化檢視命令列公用程式 (CVCollectionCmd)

您可以使用並行視覺化檢視命令列公用程式 (CVCollectionCmd.exe) 從命令列收集追蹤,以便在 Visual Studio 2013 的並行視覺化檢視中進行檢視。此工具可在未安裝 Visual Studio 的電腦上使用。

注意事項注意事項

並行視覺化檢視是 Visual Studio 2013 的選擇性擴充功能。(在舊版 Visual Studio 的某些版本中,已隨附並行視覺化檢視)。您可以從 Visual Studio 網站下載並行視覺化檢視 (英文)。

下載並行視覺化檢視命令列公用程式

若要下載及安裝此命令列公用程式,請移至 Microsoft 下載中心網站上的 Visual Studio 2013 的並行視覺化檢視收集工具 (英文),並遵循指示進行。根據預設,CVCollectionCmd.exe 會安裝在 %ProgramFiles%\Microsoft Concurrency Visualizer Collection Tools\ (x64 電腦上為 %ProgramFiles(x86)%\Microsoft Concurrency Visualizer Collection Tools\)。

使用 CVCollectionCmd 收集追蹤

您可以使用 CVCollectionCmd 啟動應用程式,或將 CVCollectionCmd 附加至應用程式,來收集追蹤。請參閱下列與選項相關的命令參考。例如

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

命令和參數

若要取得命令列公用程式中命令和參數的說明,請在命令提示字元中輸入下列命令:

CvCollectionCmd /?

選項

描述

參數

傳回值

Query

傳回是否可以開始收集。

0,表示準備開始收集。

1,表示收集已在進行中。

2,表示收集不在進行中,但已啟用一個或多個所需的 ETW 工作階段。

Launch

在並行視覺化檢視下執行指定的處理序。

可執行檔的路徑。

0,表示執行成功。

1,表示執行失敗,因為無法啟動目標應用程式。

13,表示執行失敗,因為 CVCollectionCmd 沒有足夠的權限可寫入指定的輸出目錄。

附加

開始收集系統範圍追蹤;如果指定處理序,則附加至該處理序。

無。

0,表示附加成功。

1,表示附加失敗,因為指定的處理序無效或模稜兩可。

13,表示附加失敗,因為 CVCollectionCmd 沒有足夠的權限可寫入指定的輸出目錄。

中斷連結

停止收集。

無。

0,表示中斷連結成功。

1,表示中斷連結失敗,因為目前正在收集。

2,表示中斷連結失敗,因為無法停止收集。

分析

分析指定的追蹤。

CVTrace 檔案的完整路徑。

0,表示分析成功。

1,表示無法開始分析,因為指定的追蹤是系統範圍追蹤,但未指定目標處理序。

2,表示無法開始分析,因為追蹤不是系統範圍追蹤,但已指定處理序。

3,表示分析失敗,因為指定的處理序無效。

4,表示分析失敗,因為指定的 CVTrace 檔案無效。

LaunchArgs

指定目標可執行檔引數。這個選項僅適用於 Launch 命令。

傳遞給應用程式的命令列引數。

無。

Outdir

指定要在其中儲存追蹤檔案的目錄。適用於 Launch 和 Attach 命令。

目錄路徑或相對路徑。

無。

處理序

指定執行 Attach 命令時要附加的處理序,或執行 Analyze 命令時要在追蹤中分析的處理序。適用於 Attach 和 Analyze 命令。

處理序的 PID 或名稱。

無。

組態

指定組態檔的路徑 (如果需要預設值以外的收集設定)。適用於 Launch、Attach 和 Analyze 命令。

XML 組態檔的目錄路徑或相對路徑。

無。

自訂組態設定

如果您使用 CVCollectionCmd 收集追蹤並想自訂收集設定,請使用組態檔指定這些設定。

注意事項注意事項

當您使用 Visual Studio 收集追蹤時,不要直接修改組態檔。請改用 [進階設定] 對話方塊來修改設定。

若要修改收集設定,請在您要執行 CVCollectionCmd 公用程式的電腦上建立組態檔。您可以從頭開始建立組態檔,也可以從已安裝 Visual Studio 的電腦上複製組態檔,再進行修改。檔案名稱為 UserConfig.xml,並位在 [Local AppData] 資料夾中。當您執行公用程式時,請搭配 Launch、Attach 或 Analyze 命令使用 Config 選項。在與 Config 選項相關聯的參數中,指定組態檔的路徑。

組態檔標記

組態檔採用 XML 格式。以下是有效的標記和值:

標記

描述

組態

標示整個組態檔。

必須包含下列項目:

  • MinorVersion

  • MajorVersion

MajorVersion

指定組態檔的主要版本。

Visual Studio 2012 專案必須是 1。如果不是 1,公用程式將無法運作。

MinorVersion

指定組態檔的次要版本。

Visual Studio 2012 專案必須是 0。如果不是 0,公用程式將無法運作。

IncludeEnvSymbolPath

設定值,決定是否使用環境符號路徑 (_NT_SYMBOL_PATH)。

  • True

  • False

DeleteEtlsAfterAnalysis

設定值,決定是否在分析完成時刪除 ETL 檔案。

  • True

  • False

SymbolPath

指定符號伺服器的路徑。如需詳細資訊,請參閱使用 Microsoft 符號伺服器取得偵錯符號檔 (機器翻譯)。

目錄名稱或 URL。

Markers

包含標記提供者的清單。

可包含零個或多個 MarkerProvider 項目。

MarkerProvider

指定單一標記提供者。

必須包含下列項目:

  • 層級

  • GUID

  • 名稱

可包含下列項目:

  • 分類

  • IsEnabled

層級

設定 MarkerProvider 的重要性層級。

  • Low

  • Normal

  • High

  • Critical

  • Everything

Guid

ETW 標記提供者的全域唯一識別項。

GUID。

名稱

指定標記提供者的描述。

字串。

分類

指定標記提供者所收集的分類。

以逗號分隔字串表示多個數字或多個範圍的數字。

IsEnabled

設定值,決定是否啟用標記提供者進行收集。

  • True

  • False

FilterConfig

指定從收集篩選之 ETW 事件的組態選項清單。

可包含下列項目:

  • CollectClrEvents

  • ClrCollectionOptions

  • CollectSampleEvents

  • CollectGpuEvents

  • CollectFileIO

CollectClrEvents

設定值,決定是否收集 CLR 事件。

  • True

  • False

ClrCollectionOptions

指定是否收集原生應用程式的 CLR 事件,以及是否收集 NGEN 取消事件。

可包含下列一個或兩個值,或者不包含任何值:

  • 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

指定 Just My Code 目錄的清單。

零個或多個 MyCodeDirectory 項目的清單。

MyCodeDirectory

指定包含程式碼的目錄。

絕對路徑。

範例

您可以複製下列範例,然後依照您的需求進行修改,而不用從頭開始建立組態檔。

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