Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
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>