Delen via


Concurrency Visualizer-opdrachtregelprogramma (CVCollectionCmd)

U kunt het opdrachtregelprogramma Concurrency Visualizer (CVCollectionCmd.exe) gebruiken om traces van de opdrachtregel te verzamelen, zodat u deze in de Concurrency Visualizer voor Visual Studio kunt bekijken. De hulpprogramma's kunnen worden gebruikt op computers waarop Visual Studio niet is geïnstalleerd.

Opmerking

Concurrency Visualizer is een optionele extensie. (Voorheen was het opgenomen in Visual Studio.) U kunt de Concurrency Visualizer-verzamelingshulpprogramma's voor Visual Studio downloaden vanuit de Download Center.

Het opdrachtregelprogramma Concurrency Visualizer downloaden

Als u de opdrachtregelhulpprogramma wilt downloaden en installeren, gaat u naar de Concurrency Visualizer Collection Tools voor Visual Studio en volgt u de instructies. Standaard wordt CVCollectionCmd.exe geïnstalleerd in %ProgramFiles%\Microsoft Concurrency Visualizer Collection Tools\ (%ProgramFiles(x86)%\Microsoft Concurrency Visualizer Collection Tools\ op x64 computers).

Een tracering verzamelen met CVCollectionCmd

U kunt een trace verzamelen door de app te starten met CVCollectionCmd of door eraan te koppelen. Zie de onderstaande opdrachtreferentie voor uw opties. Bijvoorbeeld

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

Opdrachten en parameters

Als u hulp wilt krijgen over de opdrachten en parameters in het opdrachtregelprogramma, typt u dit bij de opdrachtprompt:

CvCollectionCmd /?

Optie Description Parameterwaarden Retourwaarden
Query Retourneert of verzameling kan worden gestart. Geen 0 als de verzameling gereed is om te starten.

1 als de verzameling al wordt uitgevoerd.

2 als de verzameling niet wordt uitgevoerd, maar een of meer van de vereiste ETW-sessies al zijn ingeschakeld.
Launch Met behulp van de Concurrency Visualizer wordt het opgegeven proces uitgevoerd. Het pad naar het uitvoerbare bestand. 0 als de run is geslaagd.

1 als de uitvoering is mislukt omdat de doeltoepassing niet kan worden gestart.

13 als de uitvoering is mislukt omdat CVCollectionCmd onvoldoende machtigingen heeft om naar de opgegeven uitvoermap te schrijven.
Bijvoegen Begint met het verzamelen van een systeembrede trace; anders wordt deze gekoppeld aan een proces als er een is opgegeven. Geen. 0 als de bijlage is gelukt.

1 als het bijvoegen mislukt is omdat het opgegeven proces ongeldig of dubbelzinnig is.

13 als de bijlage is mislukt omdat CVCollectionCmd onvoldoende machtigingen heeft om naar de opgegeven uitvoermap te schrijven.
Detach Stopt de gegevensverzameling. Geen. 0 indien loskoppeling is geslaagd.

1 als ontkoppeling is mislukt omdat de verzameling momenteel niet wordt uitgevoerd.

2 als ontkoppeling is mislukt omdat de verzameling niet kan worden gestopt.
Analyze Analyseert de opgegeven trace. Het volledige pad van het CVTrace-bestand. 0 als de analyse is geslaagd.

1 als de analyse niet kan worden gestart omdat de opgegeven tracering systeembreed was, maar er geen doelproces is opgegeven.

2 als de analyse niet kan worden gestart omdat de tracering niet systeembreed was en er een proces is opgegeven.

3 als de analyse is mislukt omdat het opgegeven proces ongeldig is.

4 als de analyse is mislukt omdat het opgegeven CVTrace-bestand ongeldig is.
LaunchArgs Hiermee geeft u de uitvoerbare doelargumenten op. Deze optie is alleen van toepassing op de opdracht Starten. De opdrachtregelargumenten voor de toepassing. Geen.
Outdir Hiermee geeft u de map waarin traceringsbestanden worden opgeslagen. Is van toepassing op de opdrachten Starten en Bijvoegen. Een mappad of relatief pad. Geen.
Proces Hiermee geeft u het proces op waaraan moet worden gekoppeld wanneer de opdracht Koppelen wordt uitgevoerd, of het proces in een tracering die moet worden geanalyseerd wanneer de opdracht Analyseren wordt uitgevoerd. Van toepassing op de opdrachten Koppelen en Analyseren. De PID of de naam van het proces. Geen.
Config Hiermee geeft u het pad van het configuratiebestand op, als u andere verzamelingsinstellingen wilt dan de standaardinstellingen. Is van toepassing op de opdrachten Starten, Bijvoegen en Analyseren. Het mappad of het relatieve pad van het XML-configuratiebestand. Geen.

Configuratie-instellingen aanpassen

Als u CVCollectionCmd gebruikt om traceringen te verzamelen en u de verzamelingsinstellingen wilt aanpassen, gebruikt u een configuratiebestand om deze op te geven.

Opmerking

Wanneer u Visual Studio gebruikt om traceringen te verzamelen, moet u het configuratiebestand niet rechtstreeks wijzigen. Gebruik in plaats daarvan het dialoogvenster Geavanceerde instellingen om instellingen te wijzigen.

Als u verzamelingsinstellingen wilt wijzigen, maakt u een configuratiebestand op de computer waarop u het hulpprogramma CVCollectionCmd uitvoert. U kunt het volledig nieuwe configuratiebestand maken of u kunt het configuratiebestand kopiëren op de computer waarop Visual Studio is geïnstalleerd en dat wijzigen. Het bestand heeft de naamUserConfig.xml en bevindt zich in de map Local AppData . Wanneer u het hulpprogramma uitvoert, gebruikt u de optie Configuratie in combinatie met de opdracht Starten, Bijvoegen of Analyseren. Geef in de parameter die is gekoppeld aan de optie Config het pad van het configuratiebestand op.

Tags voor configuratiebestanden

Het configuratiebestand is gebaseerd op XML. Dit zijn de geldige tags en waarden:

Tag Description Waarden
Config Hiermee wordt het algemene configuratiebestand afbakend. Moet deze elementen bevatten:

- Minor versie
- MajorVersion
GroteVersie Hiermee specificeert u de hoofdversie van het configuratiebestand. Moet 1 zijn voor de meeste Visual Studio-projecten. Als dat niet 1 is, werkt het hulpprogramma niet.
Kleine Versie Specificeert de kleinere versie van het configuratiebestand. Moet 0 zijn voor de meeste Visual Studio-projecten. Als dat niet het 0 is, werkt het hulpprogramma niet.
IncludeEnvSymbolPath Hiermee stelt u een waarde in die bepaalt of het pad naar het omgevingssymbool (_NT_SYMBOL_PATH) wordt gebruikt. -Waar
-Vals
VerwijderEtlsNaAnalyse Hiermee stelt u een waarde in die bepaalt of de ETL-bestanden worden verwijderd wanneer de analyse is voltooid. -Waar
-Vals
SymbolPath Hiermee geeft u het pad van de symboolserver. Zie Microsoft Symbol Server gebruiken voor het verkrijgen van foutopsporingssymboolbestanden voor meer informatie. Een mapnaam of URL.
Markeringen Bevat de lijst met markeringsproviders. Kan nul of meer MarkerProvider-elementen bevatten.
MarkerProvider Hiermee specificeert u één markeeraanbieder. Moet deze elementen bevatten:

-Niveau
- GUID
-Naam

Kan deze elementen bevatten:

-Categorieën
- IsEnabled
Level Hiermee stelt u het urgentieniveau van een MarkerProvider in. -Laag
-Normaal
-Hoog
-Kritisch
-Alles
Guid De wereldwijd unieke identificator van de ETW-markeringsprovider. Een GUID.
Naam Hiermee geeft u de beschrijving van de markeringsprovider. Een tekenreeks.
Categorieën Hiermee geeft u de categorieën op die zijn verzameld voor de markeringsprovider. Een door komma's gescheiden reeks getallen of een reeks getallenbereiken.
IsIngeschakeld Hiermee stelt u een waarde in waarmee wordt bepaald of de markeringsprovider is ingeschakeld voor verzameling. -Waar
-Vals
FilterConfig Hiermee geeft u de lijst met configuratieopties van de ETW-gebeurtenissen die uit de verzameling worden gefilterd. Deze elementen kunnen de volgende elementen bevatten:

- CollectClrEvents
- ClrCollectionOptions
- CollectSampleEvents
- CollectGpuEvents
- CollectFileIO
CollectClrEvents Stel een waarde in die bepaalt of CLR-gebeurtenissen worden verzameld. -Waar
-Vals
ClrCollectionOptions Hiermee geeft u op of CLR-gebeurtenissen voor platformspecifieke apps moeten worden verzameld en of NGEN-afdraaigegevens moeten worden geregistreerd. Kan een, beide of geen van deze waarden bevatten:

- CollectForNative
- DisableNGenRundown
VerzamelVoorbeeldGebeurtenissen Hiermee stelt u een waarde in die bepaalt of voorbeeldgebeurtenissen worden verzameld. -Waar
-Vals
CollectGpuEvents Hiermee stelt u een waarde in die bepaalt of de gebeurtenissen die door DX worden gegenereerd, worden verzameld. -Waar
-Vals
CollectFileIO Hiermee stelt u een waarde in waarmee wordt bepaald of I/O-gebeurtenissen van bestanden worden verzameld. -Waar
-Vals
GebruikerBufferInstellingen Hiermee geeft u de lijst met parameters voor bufferinstellingen van gebruikers. Moet deze elementen bevatten:

- BufferFlushTimer
- Buffergrootte
- MinimumBuffers
- MaximumBuffers
Kernelbuffersettings Hiermee geeft u de lijst met parameters voor kernelbufferinstellingen. Moet deze elementen bevatten:

- BufferFlushTimer
- Buffergrootte
- MinimumBuffers
- MaximumBuffers
BufferFlushTimer Specificeert de spoeltimer van de ETW-buffers. Een positief geheel getal.
Buffer-grootte Hoeveelheid geheugen die is toegewezen voor elke sessiebuffer voor gebeurtenistracering, in kilobytes. Een getal van 0 tot 1024.
MinimumBuffers Het minimale aantal buffers dat wordt toegewezen voor de buffergroep van de sessie voor gebeurtenistracering. Een positief geheel getal groter dan of gelijk aan twee keer het aantal logische kernen.
MaximumBuffers Maximum aantal buffers dat wordt toegewezen voor de buffergroep van de sessie voor gebeurtenistracering. Een getal groter dan of gelijk aan MinimumBuffers.
JustMyCode Hiermee geef je de lijst met Just My Code directories op. Een lijst met nul of meer MyCodeDirectory-elementen.
MyCodeDirectory Hiermee geeft u een map op die uw code bevat. Een absoluut pad.

Example

In plaats van een configuratiebestand vanaf het begin te maken, kunt u het volgende voorbeeld kopiëren en vervolgens wijzigen om aan uw vereisten te voldoen.

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