Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
A Concurrency Visualizer parancssori segédprogram (CVCollectionCmd.exe) használatával nyomkövetéseket gyűjthet a parancssorból, így megtekintheti őket a Visual Studio Egyidejűségi vizualizációjában. Az eszközök olyan számítógépeken használhatók, amelyeken nincs telepítve a Visual Studio.
Megjegyzés:
Az egyidejűségi vizualizáció opcionális bővítmény. (Korábban már szerepelt a Visual Studióban.) A Visual Studióhoz készült Concurrency Visualizer gyűjtemény eszközeit a letöltőközpontból töltheti le.
A Concurrency Visualizer parancssori segédprogram letöltése
A parancssori segédprogram letöltéséhez és telepítéséhez nyissa meg a Concurrency Visualizer Collection Tools for Visual Studiót , és kövesse az utasításokat. Alapértelmezés szerint aCVCollectionCmd.exe telepítve van a %ProgramFiles%\Microsoft Concurrency Visualizer Collection Tools\ (%ProgramFiles(x86)%\Microsoft Concurrency Visualizer Collection Tools\ (x64 számítógépeken).
Nyomkövetés gyűjtése a CVCollectionCmd használatával
A nyomkövetést úgy gyűjtheti össze, hogy elindítja az alkalmazást a CVCollectionCmd használatával, vagy csatolja hozzá. A beállításokat az alábbi parancshivatkozásban találja. Például
<Path>CVCollectionCmd /launch c:\myapp\myapp.exe /outdir c:\myapp\data
Parancsok és paraméterek
Ha segítségre van szüksége a parancssori segédprogramban található parancsokkal és paraméterekkel kapcsolatban, írja be ezt a parancssorba:
CvCollectionCmd /?
| Lehetőség | Description | Paraméterek | Visszaadott értékek |
|---|---|---|---|
| Query | Azt adja vissza, hogy a gyűjtemény elindítható-e. | None | 0, ha a gyűjtemény készen áll a kezdésre. 1, ha a gyűjtemény már folyamatban van. 2, ha a gyűjtemény nincs folyamatban, de a szükséges ETW-munkamenetek közül egy vagy több már engedélyezve van. |
| Launch | A megadott folyamatot az Egyidejűség-vizualizáció alatt futtatja. | A végrehajtható fájl elérési útja. | 0, ha a futtatás sikeres volt. 1, ha a futtatás meghiúsult, mert a célalkalmazás nem indítható el. 13, ha a futtatás meghiúsult, mert a CVCollectionCmd nem rendelkezik elegendő engedéllyel a megadott kimeneti könyvtárba való íráshoz. |
| Mellékel | Elindítja a rendszerszintű nyomkövetést; ellenkező esetben egy folyamathoz csatolja, ha van megadott. | Nincs. | 0, ha a melléklet sikeres volt. 1, ha a melléklet meghiúsult, mert a megadott folyamat érvénytelen vagy nem egyértelmű. 13, ha a melléklet nem sikerült, mert a CVCollectionCmd nem rendelkezik elegendő engedéllyel a megadott kimeneti könyvtárba való íráshoz. |
| Detach | Az adatgyűjtés leállítása. | Nincs. | 0, ha sikeres volt a leválasztás. 1, ha a leválasztás meghiúsult, mert a gyűjtés nincs jelenleg folyamatban. 2, ha a leválasztás meghiúsult, mert a gyűjtés nem leállítható. |
| Analyze | Elemzi a megadott nyomkövetést. | A CVTrace-fájl teljes elérési útja. | 0, ha az elemzés sikeres volt. 1, ha az elemzés nem indul el, mert a megadott nyomkövetés rendszerszintű volt, de nem adott meg célfolyamatot. 2, ha az elemzés nem indítható el, mert a nyomkövetés nem volt rendszerszintű, és egy folyamat lett megadva. 3, ha az elemzés meghiúsult, mert a megadott folyamat érvénytelen. 4, ha az elemzés meghiúsult, mert a megadott CVTrace-fájl érvénytelen. |
| LaunchArgs | A végrehajtható célargumentumokat adja meg. Ez a beállítás csak a Launch parancsra vonatkozik. | Az alkalmazás parancssori argumentumai. | Nincs. |
| Outdir | Azt a könyvtárat adja meg, amelyben a nyomkövetési fájlokat menteni szeretné. A Launch és Attach parancsokra vonatkozik. | Könyvtár elérési útja vagy relatív elérési útja. | Nincs. |
| Folyamat | Megadja a csatolási parancs végrehajtásakor csatolandó folyamatot, vagy a nyomkövetésben lévő folyamatot, amely elemezni kívánja az Elemzés parancs végrehajtásakor. A Csatolás és elemzés parancsokra vonatkozik. | A PID vagy a folyamat neve. | Nincs. |
| Config | Megadja a konfigurációs fájl elérési útját, ha az alapértelmezett beállításoktól eltérő gyűjteménybeállításokat szeretne használni. Az indítási, csatolási és elemzési parancsokra vonatkozik. | Az XML-konfigurációs fájl könyvtárelérési útja vagy relatívelérési útja. | Nincs. |
Konfigurációs beállítások testreszabása
Ha a CVCollectionCmd használatával gyűjti a nyomkövetéseket, és testre szeretné szabni a gyűjtemény beállításait, akkor egy konfigurációs fájl használatával adja meg őket.
Megjegyzés:
Ha a Visual Studio használatával gyűjt nyomkövetéseket, ne módosítsa közvetlenül a konfigurációs fájlt. Ehelyett a Speciális beállítások párbeszédpanelen módosíthatja a beállításokat.
A gyűjtemény beállításainak módosításához hozzon létre egy konfigurációs fájlt azon a gépen, amelyen a CVCollectionCmd segédprogramot fogja futtatni. Létrehozhatja a konfigurációs fájlt az alapoktól, vagy átmásolhatja a konfigurációs fájlt azon a számítógépen, amelyen telepítve van a Visual Studio, és módosíthatja azt. A fájl neve UserConfig.xml , és a Helyi AppData mappában található. A segédprogram futtatásakor használja a Konfiguráció lehetőséget a Launch, Attach vagy Analyze paranccsal együtt. A Konfiguráció beállításhoz társított paraméterben adja meg a konfigurációs fájl elérési útját.
Konfigurációs fájlcímkék
A konfigurációs fájl XML-alapú. Íme az érvényes címkék és értékek:
| Tag | Description | Értékek |
|---|---|---|
| Config | Megjelöli a teljes konfigurációs fájl határait. | Az alábbi elemeket kell tartalmaznia: - MinorVersion - MajorVersion |
| Főverzió | A konfigurációs fájl főverzióját adja meg. | A legtöbb Visual Studio-projekthez 1-nek kell lennie. Ha nem 1, a segédprogram nem fog működni. |
| Kisebb verzió | A konfigurációs fájl alverzióját adja meg. | A legtöbb Visual Studio-projekthez 0-nak kell lennie. Ha nem 0, a segédprogram nem fog működni. |
| IncludeEnvSymbolPath | Beállít egy értéket, amely meghatározza, hogy a környezeti szimbólum elérési útja (_NT_SYMBOL_PATH) van-e használva. | -Igaz -Téves |
| Elemzést követő ETL-ek törlése | Beállít egy értéket, amely meghatározza, hogy az ETL-fájlok törlődnek-e az elemzés befejezésekor. | -Igaz -Téves |
| Szimbólumútvonal | A szimbólumkiszolgáló elérési útját adja meg. További információ: Hibakeresési szimbólumfájlok beszerzése a Microsoft Szimbólumkiszolgálóval. | Könyvtárnév vagy URL-cím. |
| Jelölők | A jelölőszolgáltatók listáját tartalmazza. | Nulla vagy több MarkerProvider-elemet tartalmazhat. |
| MarkerProvider | Egyetlen jelölőszolgáltatót határoz meg. | Az alábbi elemeket kell tartalmaznia: -Szint - GUID -Név A következő elemeket tartalmazhatja: -Kategóriák - EngedélyezettE |
| szint | Beállítja a MarkerProvider fontossági szintjét. | - Alacsony -Normális -Magas -Kritikus -Minden |
| GUID | Az ETW-jelölőszolgáltató globálisan egyedi azonosítója. | Egy GUID. |
| Név | A jelölőszolgáltató leírását adja meg. | Egy sztring. |
| Kategóriák | Megadja a jelölőszolgáltatóhoz gyűjtött kategóriákat. | Számokat vagy számtartományokat tartalmazó vesszővel tagolt sztring. |
| Be van kapcsolva | Beállít egy értéket, amely meghatározza, hogy a jelölőszolgáltató engedélyezve van-e a gyűjteményhez. | -Igaz -Téves |
| FilterConfig | A gyűjteményből szűrt ETW-események konfigurációs beállításainak listáját adja meg. | A következő elemeket tartalmazhatja: - CollectClrEvents - ClrCollectionOptions - MintavételiEseményekGyűjtése - GPU események gyűjtése - CollectFileIO |
| CollectClrEvents | Állítson be egy értéket, amely meghatározza, hogy a RENDSZER összegyűjti-e a CLR-eseményeket. | -Igaz -Téves |
| ClrCollectionOptions | Meghatározza, hogy a natív alkalmazások CLR-eseményeit gyűjtse-e össze, és hogy az NGEN-futtató eseményeket gyűjtse-e össze. | A következő értékek egyikét, mindkettőt vagy egyiket sem tartalmazhatja: - CollectForNative - DisableNGenRundown |
| CollectSampleEvents | Beállít egy értéket, amely meghatározza, hogy a rendszer gyűjti-e a mintaeseményeket. | -Igaz -Téves |
| GyűjtsGpuEseményeket | Beállít egy értéket, amely meghatározza, hogy a DX által létrehozott események összegyűjtve vannak-e. | -Igaz -Téves |
| CollectFileIO | Beállít egy értéket, amely meghatározza, hogy a rendszer összegyűjti-e a fájl I/O-eseményeit. | -Igaz -Téves |
| Felhasználói Pufferbeállítások | Megadja a felhasználói pufferbeállítások paramétereinek listáját. | Az alábbi elemeket kell tartalmaznia: - BufferFlushTimer - Pufferméret - MinimumBuffers - MaximumBuffers |
| KernelPufferBeállítások | Megadja a kernelpuffer-beállítások paramétereinek listáját. | Az alábbi elemeket kell tartalmaznia: - BufferFlushTimer - Pufferméret - MinimumBuffers - MaximálisBufferek |
| BufferFlushTimer | Az ETW-pufferek kiürítési időzítőjének megadása. | Pozitív egész szám. |
| Pufferméret | Az egyes eseménykövető munkamenet-pufferekhez lefoglalt memória mennyisége kilobájtban. | 0 és 1024 közötti szám. |
| MinimumBuffers | Az eseménykövetési munkamenet pufferkészletéhez lefoglalt pufferek minimális száma. | A logikai magok számának kétszeresénél nagyobb vagy egyenlő pozitív egész szám. |
| MaximumBuffers | Az eseménykövetési munkamenet pufferkészletéhez lefoglalt pufferek maximális száma. | A MinimumBuffers értéknél nagyobb vagy egyenlő szám. |
| JustMyCode | A Just My Code könyvtárak listáját adja meg. | Nulla vagy több MyCodeDirectory-elem listája. |
| MyCodeDirectory | Megadja a kódot tartalmazó könyvtárat. | Abszolút elérési út. |
Example
A konfigurációs fájl létrehozása helyett másolja ki a következő példát, majd módosítsa úgy, hogy megfeleljen a követelményeknek.
<?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>