Dela via


Kommandoradsverktyget Concurrency Visualizer (CVCollectionCmd)

Du kan använda kommandoradsverktyget Concurrency Visualizer (CVCollectionCmd.exe) för att samla in spårningar från kommandoraden så att du kan visa dem i Concurrency Visualizer för Visual Studio. Verktygen kan användas på datorer som inte har Visual Studio installerat.

Anmärkning

Concurrency Visualizer är ett valfritt tillägg. (Tidigare hade den inkluderats i Visual Studio.) Du kan ladda ned samlingsverktygen för Concurrency Visualizer för Visual Studio från Download Center.

Ladda ned kommandoradsverktyget Concurrency Visualizer

Om du vill ladda ned och installera kommandoradsverktyget går du till Concurrency Visualizer Collection Tools för Visual Studio och följer anvisningarna. Som standard installeras CVCollectionCmd.exe i %ProgramFiles%\Microsoft Concurrency Visualizer Collection Tools\ (%ProgramFiles(x86)%\Microsoft Concurrency Visualizer Collection Tools\ på x64-datorer).

Samla in en spårning med CVCollectionCmd

Du kan samla in en spårning genom att starta appen med CVCollectionCmd eller genom att ansluta till den. Se kommandoreferensen nedan för dina alternativ. Till exempel

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

Kommandon och parametrar

Om du vill få hjälp om kommandona och parametrarna i kommandoradsverktyget skriver du detta i kommandotolken:

CvCollectionCmd /?

Option Description Parameterar Returnera värden
Query Returnerar status om samlingen kan starta. None 0 om samlingen är redo att startas.

1 om samlingen redan pågår.

2 om samlingen inte pågår, men en eller flera av de nödvändiga ETW-sessionerna redan är aktiverade.
Launch Kör den angivna processen under Concurrency Visualizer. Sökvägen till den körbara filen. 0 om körningen lyckades.

1 om körningen misslyckades eftersom målapplikationen inte kunde startas.

13 om körningen misslyckades eftersom CVCollectionCmd inte har tillräckliga behörigheter för att skriva till den angivna utdatakatalogen.
Bifoga Börjar samla in en systemomfattande spårning; annars kopplas till en process om en har angetts. Ingen. 0 om den bifogade filen lyckades.

1 om den bifogade filen misslyckades eftersom den angivna processen är ogiltig eller tvetydig.

13 om den bifogade filen misslyckades eftersom CVCollectionCmd inte har tillräckliga behörigheter för att skriva till den angivna utdatakatalogen.
Detach Stoppar samlingen. Ingen. 0 om avkopplingen lyckades.

1 om avkopplingen misslyckades eftersom insamlingen för närvarande inte pågår.

2 om frånkopplingen misslyckades eftersom insamlingen inte kunde stoppas.
Analyze Analyserar den angivna spårningen. Den fullständiga sökvägen till CVTrace-filen. 0 om analysen lyckades.

1 om analysen inte kan starta eftersom den angivna spårningen var systemomfattande, men ingen målprocess angavs.

2 om analysen inte kan starta eftersom spårningen inte var systemomfattande och en process angavs.

3 om analysen misslyckades eftersom den angivna processen är ogiltig.

4 om analysen misslyckades eftersom den angivna CVTrace-filen är ogiltig.
LaunchArgs Anger de körbara målargumenten. Det här alternativet gäller endast kommandot Starta. Kommandoradsargumenten till programmet. Ingen.
Outdir Anger i vilken katalog spårningsfiler ska sparas. Gäller för kommandona Starta och bifoga. En katalogsökväg eller relativ sökväg. Ingen.
Processen Anger den process som ska kopplas till när kommandot Bifoga körs eller processen i en spårning för att analysera när kommandot Analysera körs. Gäller för kommandona Bifoga och analysera. PID eller namnet på processen. Ingen.
Config Anger sökvägen till konfigurationsfilen om du vill ha andra samlingsinställningar än standardinställningarna. Gäller för kommandona Starta, Bifoga och Analysera. Katalogsökvägen eller den relativa sökvägen för XML-konfigurationsfilen. Ingen.

Anpassa konfigurationsinställningar

Om du använder CVCollectionCmd för att samla in spårningar och vill anpassa samlingsinställningarna använder du en konfigurationsfil för att ange dem.

Anmärkning

När du använder Visual Studio för att samla in spårningar ändrar du inte konfigurationsfilen direkt. Använd i stället dialogrutan Avancerade inställningar för att ändra inställningarna.

Om du vill ändra samlingsinställningarna skapar du en konfigurationsfil på datorn där du ska köra verktyget CVCollectionCmd. Du kan skapa konfigurationsfilen från grunden, eller så kan du kopiera konfigurationsfilen på datorn som har Visual Studio installerad och ändra den. Filen heter UserConfig.xml och finns i mappen Local AppData . När du kör verktyget använder du alternativet Config tillsammans med kommandot Starta, Bifoga eller Analysera. I parametern som är associerad med konfigurationsalternativet anger du sökvägen till konfigurationsfilen.

Konfigurationsfiltaggar

Konfigurationsfilen är XML-baserad. Här är de giltiga taggarna och värdena:

Tag Description Värden
Config Avgränsar den övergripande konfigurationsfilen. Måste innehålla följande element:

- MinorVersion
- Huvudversion
Huvudversion Anger huvudversionen av konfigurationsfilen. Måste vara 1 för de flesta Visual Studio-projekt. Om inte 1 fungerar inte verktyget.
Mindre version Anger mindre versionen av konfigurationsfilen. Måste vara 0 för de flesta Visual Studio-projekt. Om inte 0 fungerar inte verktyget.
IncludeEnvSymbolPath Anger ett värde som avgör om miljösymbolsökvägen (_NT_SYMBOL_PATH) används. -Sann
-Falsk
RaderaEtlsEfterAnalys Anger ett värde som avgör om ETL-filerna tas bort när analysen är klar. -Sann
-Falsk
SymbolPath Anger sökvägen till symbolservern. Mer information finns i Använda Microsoft Symbol Server för att hämta felsökningssymbolfiler. Ett katalognamn eller en URL.
Markörer Innehåller listan över markörprovidrar. Kan innehålla noll eller fler MarkerProvider-element.
MarkerProvider Anger en enskild markörtillhandahållare. Måste innehålla följande element:

-Nivå
- GUID
- Namn

Kan innehålla följande element:

-Kategorier
- IsEnabled
Nivå Anger prioritetsnivån för en MarkerProvider. - Låg
-Normal
-Hög
-Kritisk
- Allting
Guide Den globalt unika identifieraren för ETW-markörprovidern. Ett GUID.
Namn Anger beskrivningen av markörleverantören. En sträng.
Kategorier Anger de kategorier som samlas in för markörprovidern. En kommaavgränsad sträng med tal eller intervall med tal.
ÄrAktiverad Anger ett värde som avgör om markörprovidern är aktiverad för samling. -Sann
-Falsk
FilterConfig Anger listan över konfigurationsalternativ för de ETW-händelser som filtreras från samlingen. Kan innehålla följande element:

– CollectClrEvents
- ClrCollectionOptions
– CollectSampleEvents
- CollectGpuEvents
– CollectFileIO
CollectClrEvents Ange ett värde som avgör om CLR-händelser samlas in. -Sann
-Falsk
ClrCollectionOptions Ange om CLR-händelser ska samlas in för native-appar och om NGEN-rundown-händelser ska samlas in. Kan innehålla ett, båda eller inget av följande värden:

- CollectForNative
– DisableNGenRundown
CollectSampleEvents Anger ett värde som avgör om exempelhändelser samlas in. -Sann
-Falsk
CollectGpuEvents Anger ett värde som avgör om de händelser som genereras av DX samlas in. -Sann
-Falsk
CollectFileIO Anger ett värde som avgör om fil-I/O-händelser samlas in. -Sann
-Falsk
AnvändarBufferInställningar Anger listan över parametrar för användarbuffertinställningar. Måste innehålla följande element:

– BufferFlushTimer
– BufferSize
– MinimumBuffers
– MaximumBuffers
Inställningar för kärnbuffert Anger listan över parametrar för kernelbuffertinställningar. Måste innehålla följande element:

– BufferFlushTimer
– BufferSize
– MinimumBuffers
– MaximumBuffers
BufferFlushTimer Anger ETW-buffertarnas tömningstimer. Ett positivt heltal.
Buffertstorlek Mängden minne som allokeras för varje händelsespårningssessionsbuffert i kilobyte. Ett tal från 0 till 1024.
MinimumBuffers Det minsta antalet buffertar som allokeras för buffertpoolen för händelsespårningssessionen. Ett positivt heltal större än eller lika med dubbelt så många logiska kärnor.
MaximumBuffers Maximalt antal buffertar som allokeras för buffertpoolen för händelsespårningssessionen. Ett tal som är större än eller lika med MinimumBuffers.
JustMyCode Anger listan över Kataloger för Just My Code. En lista med noll eller fler MyCodeDirectory-element.
MyCodeDirectory Anger en katalog som innehåller din kod. En absolut sökväg.

Example

I stället för att skapa en konfigurationsfil från början kan du kopiera följande exempel och sedan ändra det så att det uppfyller dina krav.

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