Udostępnij za pośrednictwem


Narzędzie wiersza polecenia Concurrency Visualizer (CVCollectionCmd)

Skorzystaj z narzędzia wiersza polecenia w wizualizatora współbieżności (CVCollectionCmd.exe), aby gromadzić dane śledzenia z wiersza polecenia, aby wyświetlić w wizualizatora współbieżności dla programu Visual Studio 2013.Narzędzia można używać na komputerach, które nie mają oprogramowania Visual Studio.

[!UWAGA]

Dla programu Visual Studio 2013 wizualizatora współbieżności jest opcjonalnym rozszerzeniem.(W niektórych wersjach starszych wersji programu Visual Studio, wizualizatora współbieżności został uwzględniony.) Możesz Pobierz wizualizatora współbieżności w witrynie sieci Web programu Visual Studio.

Pobierz narzędzia wiersza polecenia wizualizatora współbieżności

Aby pobrać i zainstalować narzędzie wiersza polecenia, przejdź do Concurrency Visualizer kolekcji Tools for Visual Studio 2013 w witrynie sieci Web Microsoft Download Center i postępuj zgodnie z instrukcjami.Domyślnie CVCollectionCmd.exe jest zainstalowany w %ProgramFiles%\Microsoft Concurrency Visualizer kolekcji Tools\ (% ProgramFiles (x 86) %\Microsoft Tools\ kolekcji wizualizatora współbieżności na 64 komputerach z procesorami x).

Zbieraj śledzenia z CVCollectionCmd

Można zbierać śledzenia, uruchamiając aplikację z CVCollectionCmd lub przez dołączenie do niej.Zobacz dokumentację poleceń poniżej dla opcji.Na przykład

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

Poleceń i parametrów

Aby uzyskać pomoc dotyczącą polecenia i parametrów narzędzia wiersza polecenia, wpisz w wierszu polecenia to:

CvCollectionCmd /?

Opcja

Opis

Parametry

Zwracane wartości

Zapytanie

Zwraca, czy można uruchomić kolekcji.

Brak

0, jeśli kolekcja jest gotowy do uruchomienia.

1, jeśli kolekcja jest już w toku.

2, jeśli kolekcja nie jest w toku, ale co najmniej jedna wymaganego ETW sesji jest już włączona.

Uruchom

Uruchamia określonego procesu pod wizualizatora współbieżności.

Ścieżka pliku wykonywalnego.

0, jeśli Uruchom powiodło się.

1, jeśli Uruchom nie powiodło się, ponieważ nie można uruchomić aplikacji docelowej.

13, jeśli Uruchom nie powiodło się, ponieważ CVCollectionCmd nie ma wystarczających uprawnień do zapisywania w katalogu określonym produktem wyjściowym.

Dołącz

Rozpoczyna się zbierania śledzenia całego systemu; w przeciwnym razie dołączenie do procesu, jeśli został określony.

Brak.

0, jeśli załącznika powiodło się.

1, jeśli załącznika nie powiodło się, ponieważ określony proces jest nieprawidłowa lub niejednoznaczna.

13, jeśli załącznik nie powiodło się, ponieważ CVCollectionCmd nie ma wystarczających uprawnień do zapisywania w katalogu określonym produktem wyjściowym.

Odłącz

Zatrzymuje kolekcji.

Brak.

0, jeśli oderwania powiodło się.

1, jeśli oderwania nie powiodło się, ponieważ kolekcja nie jest obecnie w toku.

2, jeśli oderwania nie powiodło się, ponieważ nie można zatrzymać zbieranie.

Analiza

Analizuje określony śledzenia.

Pełna ścieżka do pliku CVTrace.

0, jeśli analiza powiodła się.

1, jeśli nie można uruchomić analizy, ponieważ określone śledzenie zostało systemowe, nie procesu docelowego została ale nie określono.

2, jeśli nie można uruchomić analizy, ponieważ śledzenie nie jest całego systemu oraz proces został określony.

3, jeśli analiza powiodła się, ponieważ określony proces jest nieprawidłowy.

4, jeśli analiza powiodła się, ponieważ określony plik CVTrace jest nieprawidłowy.

LaunchArgs

Określa argumenty docelowego pliku wykonywalnego.Ta opcja dotyczy tylko polecenie Uruchom.

Argumenty wiersza polecenia do aplikacji.

Brak.

Outdir

Określa katalog, w którym chcesz zapisać plików śledzenia.Ma zastosowanie do uruchamiania i Dołącz poleceń.

Ścieżka katalogu lub ścieżką względną.

Brak.

Proces

Określa proces, aby dołączyć do po wykonaniu polecenia Dołącz lub procesu w śledzenia do analizowania po wykonaniu polecenia analizy.Dotyczy polecenia Dołącz i analizy.

Identyfikator PID lub nazwa procesu.

Brak.

Konfiguracja

Ścieżka pliku konfiguracji, jeśli chcesz, aby ustawienia zbierania innych niż wartości domyślne.Stosuje się do polecenia Uruchom, Attach i analizy.

Ścieżka katalogu lub względna ścieżka pliku konfiguracyjnego XML.

Brak.

Dostosowywanie ustawień konfiguracji

Jeśli chcesz dostosować ustawienia kolekcji, a następnie użyj pliku konfiguracji, aby określić ich umożliwia CVCollectionCmd gromadzić dane śledzenia.

[!UWAGA]

Jeśli używasz programu Visual Studio, aby gromadzić dane śledzenia, nie należy bezpośrednio modyfikować pliku konfiguracji.Zamiast tego należy użyć ustawienia zaawansowane okno dialogowe, aby zmodyfikować ustawienia.

Aby zmodyfikować ustawienia zbierania, należy utworzyć plik konfiguracji na komputerze, w którym zostanie uruchomiony za pomocą narzędzia CVCollectionCmd.Plik konfiguracji można utworzyć od podstaw lub możesz skopiować plik konfiguracji na komputerze, na którym zainstalowano oprogramowania Visual Studio i modyfikować, który.Nosi nazwę pliku UserConfig.xml i znajduje się w lokalnego AppData folder.Po uruchomieniu narzędzia, należy użyć opcji konfiguracji w połączeniu z poleceniem uruchamiania, Dołącz lub analizy.W parametrze skojarzonego z opcji konfiguracji Określ ścieżkę pliku konfiguracji.

Tagi pliku konfiguracji

Plik konfiguracji jest oparty na formacie XML.Oto prawidłowych tagów i wartości:

Znacznik

Opis

Wartości

Konfiguracja

Rozgranicza ogólną pliku konfiguracji.

Musi zawierać następujące elementy:

  • MinorVersion

  • MajorVersion

MajorVersion

Określa główny numer wersji pliku konfiguracji.

Musi mieć wartość 1 dla Visual Studio 2012 projektów.W przeciwnym razie 1, narzędzie nie będzie działać.

MinorVersion

Określa wersja pomocnicza pliku konfiguracji.

Musi mieć wartość 0 dla Visual Studio 2012 projektów.W przeciwnym razie 0, narzędzie nie będzie działać.

IncludeEnvSymbolPath

Ustawia wartość określającą, czy jest używana w ścieżce symbol środowiska (_NT_SYMBOL_PATH).

  • TRUE

  • False

DeleteEtlsAfterAnalysis

Ustawia wartość określającą, czy pliki ETL zostaną usunięte po zakończeniu analizy.

  • TRUE

  • False

SymbolPath

Określa ścieżkę serwera symboli.Aby uzyskać więcej informacji, zobacz użycia serwera symboli firmy Microsoft w celu uzyskania pliki symboli debugowania.

Nazwa katalogu lub adres URL.

Znaczniki

Zawiera listę dostawców znacznika.

Może zawierać zero lub więcej elementów MarkerProvider.

MarkerProvider

Określa dostawcę jeden znacznik.

Musi zawierać następujące elementy:

  • Poziom

  • Identyfikator GUID

  • Nazwa

Może zawierać następujące elementy:

  • Kategorie

  • Isenabled, należy

Poziom

Ustawia poziom ważności MarkerProvider.

  • Niska

  • Normalny

  • Wysoki

  • Krytyczne

  • Wszystko

Identyfikator GUID

Unikatowy identyfikator globalny dostawcy ETW znacznika.

IDENTYFIKATOR GUID.

Nazwa

Określa opis dostawcy znacznika.

Ciąg.

Kategorie

Określa kategorie zbieranych dla dostawcy znacznika.

Ciąg rozdzielonych przecinkami numery lub zakresy numerów.

Isenabled, należy

Ustawia wartość, która określa, czy dostawca znacznika jest włączone dla kolekcji.

  • TRUE

  • False

FilterConfig

Określa listę opcji konfiguracji zdarzeń zdarzeń systemu Windows, które są filtrowane z kolekcji.

Może zawierać następujące elementy:

  • CollectClrEvents

  • ClrCollectionOptions

  • CollectSampleEvents

  • CollectGpuEvents

  • CollectFileIO

CollectClrEvents

Ustaw wartość, która określa, czy są zbierane zdarzenia CLR.

  • TRUE

  • False

ClrCollectionOptions

Określa, czy do gromadzenia zdarzeń CLR w przypadku aplikacji natywnych i czy do gromadzenia zdarzeń zamknięcia NGEN.

Może zawierać jeden, zarówno lub żaden z następujących wartości:

  • CollectForNative

  • DisableNGenRundown

CollectSampleEvents

Ustawia wartość określającą, czy są zbierane zdarzenia przykładu.

  • TRUE

  • False

CollectGpuEvents

Ustawia wartość określającą, czy są zbierane zdarzenia generowane przez DX.

  • TRUE

  • False

CollectFileIO

Ustawia wartość określającą, czy są zbierane zdarzenia We/Wy pliku.

  • TRUE

  • False

UserBufferSettings

Określa listę parametrów ustawień buforu użytkownika.

Musi zawierać następujące elementy:

  • BufferFlushTimer

  • BufferSize

  • MinimumBuffers

  • MaximumBuffers

KernelBufferSettings

Określa listę parametrów ustawień buforu jądra.

Musi zawierać następujące elementy:

  • BufferFlushTimer

  • BufferSize

  • MinimumBuffers

  • MaximumBuffers

BufferFlushTimer

Określa wyrównana zegar buforów ETW.

Dodatnia liczba całkowita.

BufferSize

Ilość pamięci przydzielonej do każdego buforu sesji śledzenia zdarzeń w kilobajtach.

Liczba z przedziału od 0 do 1024.

MinimumBuffers

Minimalna liczba buforów, które są przydzielone dla puli buforów sesji śledzenia zdarzeń.

Dodatnią liczbą całkowitą większą lub równą dwa razy liczba rdzeni logicznych.

MaximumBuffers

Maksymalna liczba buforów, które są przydzielone dla puli buforów sesji śledzenia zdarzeń.

Liczba większa lub równa MinimumBuffers.

JustMyCode

Określa listę katalogów tylko mój kod.

Lista elementów MyCodeDirectory zero lub więcej.

MyCodeDirectory

Określa katalog, który zawiera kod.

Ścieżką bezwzględną.

Przykład

Używaj pliku konfiguracji od początku, można Skopiuj poniższy przykład, a następnie zmodyfikować zgodnie z potrzebami.

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