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

Pomocí nástroje příkazového řádku Concurrency Visualizer (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.

Stažení nástroje příkazového řádku Vizualizéru souběžnosti

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

Shromáždění trasování 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 Popis Parametry Vrácené hodnoty
Dotaz Vrátí, zda je možné spustit kolekci. Nic 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í Trasování událostí pro Windows je již povolená.
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ý. Nezaokrouhlovat. 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.
Odpojit Zastaví shromažďování. Nezaokrouhlovat. 0, pokud bylo odpojení úspěšné.

1, pokud odpojení selhalo, protože kolekce aktuálně neprobíhá.

2, pokud odpojení selhalo, protože kolekci nebylo možné zastavit.
Analyzovat 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 analýza nemůže spustit, protože trasování nebylo v celém systému a byl zadán 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. Nezaokrouhlovat.
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. Nezaokrouhlovat.
Zpracovat Určuje proces, ke který se má připojit při spuštění příkazu Attach, nebo proces v trasování, 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. Nezaokrouhlovat.
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. Nezaokrouhlovat.

Přizpůsobení nastavení konfigurace

Pokud použijete CVCollectionCmd ke shromažďování trasování a chcete přizpůsobit nastavení kolekce, použijte konfigurační soubor k jejich určení.

Poznámka:

Pokud ke shromažďování trasování používáte Visual Studio, neupravujte konfigurační soubor přímo. Místo toho použijte dialogové okno Upřesnit Nastavení ke změně 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:

Značka (tag) Popis Hodnoty
Config Demarcats the overall config file. Musí obsahovat tyto prvky:

-Minorversion
- MajorVersion
MajorVersion 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.
Minorversion 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, jestli se používá cesta symbolu prostředí (_NT_SYMBOL_PATH). -Pravda
-False
DeleteEtlsAfterAnalysis Nastaví hodnotu, která určuje, jestli se soubory ETL po dokončení analýzy odstraní. -Pravda
-False
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 zprostředkovatelů značek. Může obsahovat nula nebo více elementů MarkerProvider.
MarkerProvider Určuje jednoho zprostředkovatele značek. Musí obsahovat tyto prvky:

-Úrovni
-IDENTIFIKÁTOR GUID
-Jméno

Může obsahovat tyto prvky:

-Kategorie
-Isenabled
Level Nastaví úroveň důležitosti MarkerProvideru. -Nízké
-Normální
-Vysoké
- Kritická
-Všechno
Guid Globálně jedinečný identifikátor zprostředkovatele značek pro Windows. IDENTIFIKÁTOR GUID.
Název Určuje popis zprostředkovatele značek. Řetězec.
Kategorie Určuje kategorie shromážděné pro zprostředkovatele značek. Řetězec s oddělovači čísel nebo oblastí čísel.
IsEnabled Nastaví hodnotu, která určuje, jestli je pro kolekci povolený zprostředkovatel značek. -Pravda
-False
FilterConfig Určuje seznam možností konfigurace událostí pro Windows, 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. -Pravda
-False
ClrCollectionOptions Určuje, jestli se mají shromažďovat události CLR pro nativní aplikace a jestli se mají shromažďovat události rundownu NGEN. Může obsahovat jednu, obě nebo žádnou z těchto hodnot:

- CollectForNative
– DisableNGenRundown
CollectSampleEvents Nastaví hodnotu, která určuje, jestli se shromažďují ukázkové události. -Pravda
-False
CollectGpuEvents Nastaví hodnotu, která určuje, jestli se shromažďují události generované dx. -Pravda
-False
CollectFileIO Nastaví hodnotu, která určuje, jestli se shromažďují vstupně-výstupní události souboru. -Pravda
-False
UserBuffer Nastavení Určuje seznam parametrů nastavení vyrovnávací paměti uživatele. Musí obsahovat tyto prvky:

- BufferFlushTimer
-Buffersize
- MinimumBuffers
- MaximumBuffers
KernelBuffer Nastavení 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í pro Windows. Kladné celé číslo.
Buffersize Množství paměti přidělené pro každou vyrovnávací paměť 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.
MaximumBuffers 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.

Příklad

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>