Sdílet prostřednictvím


Nástroj příkazového řádku Vizualizér souběžnosti (CVCollectionCmd)

Pomocí nástroje příkazového řádku Vizualizéru souběžnosti (CVCollectionCmd.exe) můžete shromažďovat trasování z příkazového řádku, abyste je mohli zobrazit v Vizualizéru souběžnosti pro Visual Studio. Nástroje lze použít na počítačích, které nemají nainstalovanou sadu Visual Studio.

Poznámka:

Vizualizér souběžnosti je volitelné rozšíření. (Dříve byla součástí sady Visual Studio.) Nástroje pro kolekci Vizualizéru souběžnosti pro Visual Studio si můžete stáhnout z webu Download Center.

Stáhněte si příkazový řádkový nástroj Vizualizéru souběžnosti

Pokud chcete stáhnout a nainstalovat nástroj příkazového řádku, přejděte na Nástroje kolekce Vizualizéru souběžnosti pro Visual Studio a postupujte podle pokynů. Ve výchozím nastavení se CVCollectionCmd.exe instaluje do %ProgramFiles%\Microsoft Concurrency Visualizer Collection Tools\ (%ProgramFiles(x86)%\Microsoft Concurrency Visualizer Collection Tools\ na počítačích x64).

Shromážděte trasu pomocí CVCollectionCmd

Trasování můžete shromáždit spuštěním aplikace pomocí CVCollectionCmd nebo připojením k ní. Možnosti najdete v následujících referenčních informacích k příkazům. Například

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

Příkazy a parametry

Pokud chcete získat nápovědu k příkazům a parametrům v nástroji příkazového řádku, zadejte tento příkaz na příkazovém řádku:

CvCollectionCmd /?

Možnost Description Parametry Návratové hodnoty
Query Vrátí, zda je možné spustit kolekci. None 0, pokud je kolekce připravená k zahájení.

1, pokud již probíhá shromažďování.

2, pokud shromažďování neprobíhá, ale jedna nebo více požadovaných relací ETW (Trasování událostí pro Windows) je již povolena.
Launch Spustí zadaný proces v rámci Vizualizéru souběžnosti. Cesta ke spustitelnému souboru. 0, pokud bylo spuštění úspěšné.

1, pokud spuštění selhalo, protože cílovou aplikaci nebylo možné spustit.

13 Pokud spuštění selhalo, protože CVCollectionCmd nemá dostatečná oprávnění k zápisu do zadaného výstupního adresáře.
Připojit Začíná shromažďovat trasování v celém systému; v opačném případě se připojí k procesu, pokud je zadaný. Žádné. 0, pokud byla příloha úspěšná.

1, pokud se příloha nezdařila, protože zadaný proces je neplatný nebo nejednoznačný.

13 Pokud příloha selhala, protože CVCollectionCmd nemá dostatečná oprávnění k zápisu do zadaného výstupního adresáře.
Detach Zastaví shromažďování. Žádné. 0, pokud bylo odpojení úspěšné.

1, pokud došlo k chybě při odpojování, protože sběr dat aktuálně neprobíhá.

2, pokud odpojení selhalo, protože kolekci nebylo možné zastavit.
Analyze Analyzuje zadané trasování. Úplná cesta k souboru CVTrace. 0, pokud byla analýza úspěšná.

1, pokud analýza nemůže spustit, protože zadané trasování bylo systémové, ale nebyl zadán žádný cílový proces.

2 Pokud nelze zahájit analýzu, protože trasování nebylo systémově kompletní a byl určen proces.

3, pokud analýza selhala, protože zadaný proces je neplatný.

4 pokud analýza selhala, protože zadaný soubor CVTrace je neplatný.
LaunchArgs Určuje cílové spustitelné argumenty. Tato možnost se vztahuje pouze na příkaz Spustit. Argumenty příkazového řádku aplikace. Žádné.
Outdir Určuje adresář, do kterého se mají ukládat trasovací soubory. Platí pro příkazy Spustit a Připojit. Cesta k adresáři nebo relativní cesta. Žádné.
Proces Určuje proces, ke kterému se má připojit při spuštění příkazu Připojit, nebo proces v trasovacím protokolu, který se má analyzovat při spuštění příkazu Analyzovat. Platí pro příkazy Připojit a Analyzovat. KÓD PID nebo název procesu. Žádné.
Config Určuje cestu ke konfiguračnímu souboru, pokud chcete, aby nastavení kolekce byla jiná než výchozí nastavení. Platí pro příkazy Launch, Attach a Analyze. Cesta k adresáři nebo relativní cesta konfiguračního souboru XML. Žádné.

Přizpůsobení nastavení konfigurace

Pokud použijete CVCollectionCmd ke shromažďování stop a chcete přizpůsobit nastavení sběru, použijte konfigurační soubor, abyste je mohli určit.

Poznámka:

Pokud ke shromažďování trasování používáte Visual Studio, neupravujte konfigurační soubor přímo. Místo toho k úpravě nastavení použijte dialogové okno Upřesnit nastavení .

Chcete-li upravit nastavení kolekce, vytvořte konfigurační soubor na počítači, ve kterém spustíte nástroj CVCollectionCmd. Konfigurační soubor můžete vytvořit úplně od začátku nebo můžete konfigurační soubor zkopírovat do počítače s nainstalovanou sadou Visual Studio a upravit ho. Soubor má název UserConfig.xml a nachází se ve složce Local AppData . Při spuštění nástroje použijte možnost Konfigurace ve spojení s příkazem Spustit, Připojit nebo Analyzovat. V parametru přidruženém k možnosti Konfigurace zadejte cestu konfiguračního souboru.

Značky konfiguračních souborů

Konfigurační soubor je založený na jazyce XML. Tady jsou platné značky a hodnoty:

Štítek Description Hodnoty
Config Vymezuje celkový konfigurační soubor. Musí obsahovat tyto prvky:

- MinorVersion
- Hlavní verze
HlavníVerze Určuje hlavní verzi konfiguračního souboru. Pro většinu projektů sady Visual Studio musí být 1. Pokud není 1, nástroj nebude fungovat.
Méně významná verze Určuje podverzi konfiguračního souboru. Pro většinu projektů sady Visual Studio musí být 0. Pokud není 0, nástroj nebude fungovat.
IncludeEnvSymbolPath Nastaví hodnotu, která určuje, zda se použije cesta symbolů prostředí (_NT_SYMBOL_PATH). -Pravdivý
-Falešný
SmazatETLpoAnalýze Nastaví hodnotu, která určuje, jestli se soubory ETL po dokončení analýzy odstraní. -Pravdivý
-Falešný
SymbolPath Určuje cestu serveru symbolů. Další informace naleznete v tématu Použití serveru symbolů společnosti Microsoft k získání souborů symbolů ladění. Název adresáře nebo adresa URL.
Značky Obsahuje seznam poskytovatelů značek. Může obsahovat nula nebo více elementů MarkerProvider.
MarkerProvider Určuje jednoho zprostředkovatele značek. Musí obsahovat tyto prvky:

-Úroveň
-IDENTIFIKÁTOR GUID
- Jméno

Může obsahovat tyto prvky:

-Kategorie
- IsEnabled
Úroveň Nastaví úroveň důležitosti MarkerProvideru. -Nízký
-Normální
-Vysoko
-Kritický
-Všechno
Průvodce Globálně jedinečný identifikátor poskytovatele značek ETW. IDENTIFIKÁTOR GUID.
Název Určuje popis zprostředkovatele značek. Řetězec.
Kategorie Určuje kategorie shromážděné pro poskytovatele ukazatelů. Řetězec čísel nebo rozsahů čísel oddělených čárkami.
JePovoleno Nastaví hodnotu, která určuje, zda je pro sběr povolen zprostředkovatel značek. -Pravdivý
-Falešný
FilterConfig Určuje seznam konfiguračních možností událostí ETW, které jsou filtrovány z kolekce. Může obsahovat tyto prvky:

- CollectClrEvents
- ClrCollectionOptions
- CollectSampleEvents
- CollectGpuEvents
- CollectFileIO
CollectClrEvents Nastavte hodnotu, která určuje, zda se shromažďují události CLR. -Pravdivý
-Falešný
ClrCollectionOptions Určuje, zda se mají shromažďovat události modulu CLR (Common Language Runtime) pro nativní aplikace, a zda se mají shromažďovat události souhrnu NGEN. Může obsahovat jednu, obě nebo žádnou z těchto hodnot:

- CollectForNative
– DisableNGenRundown
SbírejteUkázkovéUdálosti Nastaví hodnotu, která určuje, jestli se shromažďují ukázkové události. -Pravdivý
-Falešný
CollectGpuEvents Nastaví hodnotu, která určuje, jestli se shromažďují události generované DX. -Pravdivý
-Falešný
CollectFileIO Nastaví hodnotu, která určuje, jestli se shromažďují vstupně-výstupní události souboru. -Pravdivý
-Falešný
Uživatelské nastavení bufferu Určuje seznam parametrů nastavení uživatelské vyrovnávací paměti. Musí obsahovat tyto prvky:

- BufferFlushTimer
- VelikostPufru
- MinimumBuffers
- MaximumBuffers
Nastavení vyrovnávací paměti jádra Určuje seznam parametrů nastavení vyrovnávací paměti jádra. Musí obsahovat tyto prvky:

- BufferFlushTimer
- BufferSize
- MinimumBuffers
- MaximumBuffers
BufferFlushTimer Určuje časovač vyprázdnění vyrovnávacích pamětí ETW. Kladné celé číslo.
BufferSize Přidělené množství paměti pro vyrovnávací paměť každé relace trasování událostí, v kilobajtech. Číslo od 0 do 1024.
MinimumBuffers Minimální počet vyrovnávacích pamětí přidělených pro fond vyrovnávací paměti relace trasování událostí. Kladné celé číslo větší nebo rovno dvojnásobku počtu logických jader.
MaximálníPufry Maximální počet vyrovnávacích pamětí přidělených pro fond vyrovnávací paměti relace trasování událostí. Číslo větší nebo rovno MinimumBuffers.
JustMyCode Určuje seznam adresářů Just My Code. Seznam nulových nebo více elementů MyCodeDirectory.
MyCodeDirectory Určuje adresář, který obsahuje váš kód. Absolutní cesta.

Example

Místo vytvoření konfiguračního souboru od začátku můžete zkopírovat následující příklad a upravit ho tak, aby splňoval vaše požadavky.

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