Megosztás a következőn keresztül:


Concurrency Visualizer parancssori segédprogram (CVCollectionCmd)

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>