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:
|
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). |
|
DeleteEtlsAfterAnalysis |
Ustawia wartość określającą, czy pliki ETL zostaną usunięte po zakończeniu analizy. |
|
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:
Może zawierać następujące elementy:
|
Poziom |
Ustawia poziom ważności MarkerProvider. |
|
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. |
|
FilterConfig |
Określa listę opcji konfiguracji zdarzeń zdarzeń systemu Windows, które są filtrowane z kolekcji. |
Może zawierać następujące elementy:
|
CollectClrEvents |
Ustaw wartość, która określa, czy są zbierane zdarzenia CLR. |
|
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:
|
CollectSampleEvents |
Ustawia wartość określającą, czy są zbierane zdarzenia przykładu. |
|
CollectGpuEvents |
Ustawia wartość określającą, czy są zbierane zdarzenia generowane przez DX. |
|
CollectFileIO |
Ustawia wartość określającą, czy są zbierane zdarzenia We/Wy pliku. |
|
UserBufferSettings |
Określa listę parametrów ustawień buforu użytkownika. |
Musi zawierać następujące elementy:
|
KernelBufferSettings |
Określa listę parametrów ustawień buforu jądra. |
Musi zawierać następujące elementy:
|
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>