Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
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>