Condividi tramite


Utilità della riga di comando del visualizzatore di concorrenza (CVCollectionCmd)

Si possono utilizzare le utilità della riga di comando del Visualizzatore di concorrenza (CVCollectionCmd.exe) per raccogliere ed esaminare le traccie sulle macchine che non hanno Visual Studio.È possibile aprire le traccie raccolte in un computer che ha Visual Studio in modo che sia possibile visualizzarle automaticamente nel Visualizzatore di concorrenza.

Installazione e Distribuzione dell'Utilità

Per installare da un DVD di Visual Studio

  1. Nel DVD, individuare la cartella nel livello più alto denominata "Concurrency Visualizer".

  2. In questa cartella, eseguire concvi_standalonecollection.exe.

Per installare da un File di Installazione Web di Visual Studio

  1. Individuare il file di installazione scaricato.Il nome del file dipende dalla versione di Visual Studio che è stata scaricata.

  2. Aprire una finestra del prompt dei comandi e spostarsi nella directory in cui si trova il file di installazione.

  3. Eseguire il comando <install file>/layout, dove install file è il nome del file scaricato.Il comando di layout crea una cartella denominata "Concurrency Visualizer".

  4. Nella cartella "Concurrency Visualizer", eseguire concvi_standalonecollection.exe.

Per distribuire su un computer che non dispone di Visual Studio

  1. Individuare concvi_standalonecollection.exe su un computer in cui è installato Visual Studio.(Vedere le due procedure precedenti).

  2. Copiare concvi_standalonecollection.exe nel computer che non dispone di Visual Studio.

  3. Eseguire concvi_standalonecollection.exe.

Comandi e parametri

È possibile ottenere informazioni su questi comandi e parametri tramite:

CvCollectionCmd /?

Opzione

Descrizione

Parametri

Valori restituiti

Query

Ritorna se la raccolta può essere avviata.

Nessuno

0 se la raccolta è pronta per essere avviata.

1 se la raccolta è già in corso.

2 se la raccolta non è in corso, ma uno o più delle sessioni ETW richieste sono già abilitate.

Avvio

Viene eseguito il processo specificato con il Visualizzatore di concorrenza.

Percorso dell'eseguibile.

0 se l'esecuzione ha esito positivo.

1 se l'esecuzione non è riuscita perché l'applicazione di destinazione non può essere avviata.

13 se l'esecuzione è fallita perché CVCollectionCmd non dispone di autorizzazioni sufficienti per scrivere nella directory di output specificata.

Connetti

Avviare la raccolta di traccie a livello di sistema; in caso contrario, connetterla ad un processo eventualmente specificato.

Nessuno.

0 se la connessione ha avuto successo.

1 se la connessione non è riuscita perché il processo specificato non è valido o ambiguo.

13 se la connessione è fallita perché CVCollectionCmd non dispone di autorizzazioni sufficienti per scrivere nella directory di output specificata.

Disconnetti

Arresta la raccolta.

Nessuno.

0 se la disconnessione ha avuto esito positivo.

1 se la disconnessione ha avuto esito negativo perché la raccolta non è attualmente in corso.

2 se la disconnessione ha avuto esito negativo perché la raccolta non può essere interrotta.

Analizza

Analizza la traccia specificata.

Il percorso completo del file CVTrace.

0 se l'analisi ha avuto esito positivo.

1 se l'analisi non è potuta iniziare perché la traccia specificata è a livello di sistema, ma nessun processo di destinazione è stato specificato.

2 se l'analisi non può iniziare perché la traccia non era a livello di sistema e un processo è stato specificato.

3 se l'analisi ha esito negativo perché il processo specificato non è valido.

4 se l'analisi ha esito negativo perché il file specificato di CVTrace non è valido.

LaunchArgs

Specifica gli argomenti dell'eseguibile di destinazione.Questa opzione si applica solamente al comando d'avvio.

Argomenti della riga di comando per l'applicazione.

Nessuno.

Outdir

Specifica la directory in cui salvare i file di traccia.Si applica ai comandi di connessione e di avvio.

Un percorso della directory o il percorso relativo.

Nessuno.

Processo

Specifica il processo a cui connettersi quando il comando di connessione viene eseguito, o il processo in una traccia da analizzare quando il comando di analisi viene eseguito.Si applica ai comandi di connessione e di analisi.

Il PID oppure il nome del processo.

Nessuno.

Configurazione

Specifica il percorso del file di configurazione, se si desidera utilizzare impostazioni di raccolta diverse da quelle predefinite.Si applica ai comandi di avvio, di connessione e di analisi.

Il percorso della directory o il percorso relativo del file di configurazione XML.

Nessuno.

Personalizzazione delle impostazioni di configurazione

Se si utilizza CVCollectionCmd per la raccolta di tracce e se si desidera personalizzare le impostazioni di raccolta, utilizzare un file di configurazione per specificarle.

[!NOTA]

Quando si utilizza Visual Studio per raccogliere le tracce, non modificare direttamente il file di configurazione.In alternativa, utilizzare la finestra di dialogo Impostazioni avanzate per modificare le impostazioni.

Per modificare le impostazioni di raccolta, creare un file di configurazione nel computer in cui si eseguiranno le utilità di CVCollectionCmd.È possibile creare il file di configurazione da zero, o copiare il file di configurazione nel computer in cui è installato Visual Studio e modificarlo.Il file è denominato UserConfig.xml e si trova nella cartella Local AppData.Quando si eseguono le utilità, utilizzare l'opzione di configurazione in combinazione con il comando di avvio, di connessione o di analisi.Nel parametro associato all'opzione di configurazione, specificare il percorso del file di configurazione.

Hh543788.collapse_all(it-it,VS.110).gifTag del File di configurazione

Il file di configurazione è basato su XML.Di seguito sono riportati i tag validi e i valori:

Tag

Descrizione

Valori

Configurazione

Delimita il file di configurazione globale.

Deve contenere questi elementi:

  • MinorVersion

  • MajorVersion

MajorVersion

Specifica la versione principale del file di configurazione.

Deve essere 1 per i progetti Visual Studio 2012.Se non è 1, l'utilità non funzionerà.

MinorVersion

Specifica la versione secondaria del file di configurazione.

Deve essere 0 per i progetti Visual Studio 2012.Se non è 0, l'utilità non funzionerà.

IncludeEnvSymbolPath

Imposta un valore che determina se il percorso dei simboli di ambiente (_NT_SYMBOL_PATH) è utilizzato.

  • True

  • False

DeleteEtlsAfterAnalysis

Imposta un valore che determina se i file di ETL verranno eliminati quando l'analisi verrà completata.

  • True

  • False

SymbolPath

Specifica il percorso del server di simboli.Per ulteriori informazioni, vedere Utilizzare il Server di Simboli di Microsoft per ottenere i file di simboli del debug.

Un nome di directory o un URL.

Markers

Contiene l'elenco dei provider di marcatori.

Può contenere zero o più elementi MarkerProvider.

MarkerProvider

Specifica un solo provider di marcatori.

Deve contenere questi elementi:

  • Livello

  • GUID

  • Nome

Può contenere questi elementi:

  • Categorie

  • IsEnabled

Livello

Imposta il livello di importanza di un MarkerProvider.

  • Low

  • Normal

  • High

  • Livello critico

  • Tutto

Guid

Identificatore univoco globale del provider di marcatori ETW.

Un GUID.

Nome

Specifica la descrizione del provider di marcatori.

Stringa.

Categorie

Specifica le categorie raccolte per il provider di marcatori.

Stringa delimitata da virgole di numeri o intervalli di numeri.

IsEnabled

Imposta un valore che determina se il provider di marcatori è stato attivato per la raccolta.

  • True

  • False

FilterConfig

Specifica l'elenco delle opzioni di configurazione degli eventi ETW che vengono filtrati dalla raccolta.

Può contenere questi elementi:

  • CollectClrEvents

  • ClrCollectionOptions

  • CollectSampleEvents

  • CollectGpuEvents

  • CollectFileIO

CollectClrEvents

Imposta un valore che determina se vengono raccolti gli eventi CLR.

  • True

  • False

ClrCollectionOptions

Specifica se si desidera raccogliere gli eventi CLR per le applicazioni native e se si desidera raccogliere gli eventi rundown NGEN.

Può contenere uno, entrambi, o nessuno dei valori seguenti:

  • CollectForNative

  • DisableNGenRundown

CollectSampleEvents

Imposta un valore che determina se gli eventi di esempio vengono raccolti.

  • True

  • False

CollectGpuEvents

Imposta un valore che determina se gli eventi generati da DX vengono raccolti.

  • True

  • False

CollectFileIO

Imposta un valore che determina se vengono raccolti gli eventi di I/O dei file.

  • True

  • False

UserBufferSettings

Specifica l'elenco dei parametri di impostazione del buffer dell'utente.

Deve contenere questi elementi:

  • BufferFlushTimer

  • BufferSize

  • MinimumBuffers

  • MaximumBuffers

KernelBufferSettings

Specifica l'elenco dei parametri di impostazione del buffer del kernel.

Deve contenere questi elementi:

  • BufferFlushTimer

  • BufferSize

  • MinimumBuffers

  • MaximumBuffers

BufferFlushTimer

Specifica il timer di cancellazione dei buffer ETW.

Integer positivo

BufferSize

Quantità di memoria allocata per ciascun buffer della sessione di traccia degli eventi, in kilobyte.

Un numero compreso tra 0 e 1024.

MinimumBuffers

Il numero minimo dei buffer allocati per il pool di buffer della sessione di traccia degli eventi.

Un numero intero positivo maggiore o uguale a due volte il numero dei core logici.

MaximumBuffers

Il numero massimo dei buffer allocati per il pool di buffer della sessione di traccia degli eventi.

Un numero maggiore o uguale a MinimumBuffers.

JustMyCode

Specifica l'elenco delle directory Just My Code.

Un elenco di zero o più elementi MyCodeDirectory.

MyCodeDirectory

Specifica una directory che contiene il codice.

Un percorso assoluto.

Hh543788.collapse_all(it-it,VS.110).gifEsempio

Anziché creare un file di configurazione all'inizio, è possibile copiare l'esempio seguente e modificarlo per soddisfare le proprie esigenze.

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