Partager via


Utilitaire de ligne de commande du visualiseur concurrentiel (CVCollectionCmd)

Vous pouvez utiliser l'utilitaire de ligne de commande du visualiseur concurrentiel (CVCollectionCmd.exe) pour traiter les traces sur les machines qui n'ont pas Visual Studio.Vous pouvez ouvrir des traces collectées sur un ordinateur qui a Visual Studio afin de pouvoir les afficher dans le visualiseur d'accès concurrentiel.

Installation et déploiement de l'utilitaire

Pour installer à partir d'un DVD Visual Studio

  1. Sur le DVD, recherchez le dossier de niveau supérieur nommé « Visualiseur d'accès concurrentiel ».

  2. Dans ce dossier, exécutez concvi_standalonecollection.exe.

Pour installer à partir d'un fichier d'installation Web de Visual Studio

  1. Localisez le fichier d'installation que vous avez téléchargé.Le nom du fichier dépend de la version de Visual Studio que vous avez téléchargé.

  2. Ouvrez une fenêtre d'invite de commandes et accédez au répertoire où se trouve le fichier d'installation.

  3. Exécutez la commande <install file>/layout, où install file est le nom du fichier que vous avez téléchargé.L'ordre de disposition crée un dossier nommé « visualiseur concurrentiel. »

  4. Dans le dossier « visualiseur concurrentiel », exécutez concvi_standalonecollection.exe.

Pour déployer sur un ordinateur qui ne dispose pas de Visual Studio

  1. Recherchez concvi_standalonecollection.exe sur un ordinateur qui a Visual Studio.(Voir les deux procédures précédentes).

  2. Copiez concvi_standalonecollection.exe sur l'ordinateur qui n'a pas Visual Studio.

  3. Exécutez concvi_standalonecollection.exe.

Commandes et paramètres

Vous pouvez obtenir de l'aide sur les commandes et paramètres à l'aide de :

CvCollectionCmd /?

Option

Description

Paramètres

Valeurs retournées

Requête

Retourne si la collection peut être démarrée.

Aucun

0 si la collection est prête à démarrer.

1 si la collection est déjà en cours.

2 si la collection n'est pas en cours, mais une ou plusieurs sessions ETW requises sont déjà activées.

Lancer

Exécute le processus spécifié sous le visualiseur d'accès concurrentiel.

Chemin d'accès de l'exécutable.

0 si l'exécution a réussi.

1 si l'exécution a échoué car l'application cible n'a pas pu être démarrée.

13 si l'exécution a échoué car CVCollectionCmd n'a pas d'autorisations suffisantes pour écrire dans le répertoire de sortie spécifié.

Attacher

Commence à collecter une trace à l'échelle du système ; sinon, attache un processus s'il est spécifié.

Aucun

0 si la connexion a réussi.

1 si la connexion a échoué car le processus spécifié est incorrect ou ambigu.

13 si la connexion a échoué car CVCollectionCmd a des autorisations insuffisantes d'écriture dans le répertoire de sortie spécifié.

Détacher

Arrête la collecte.

Aucun

0 si le détachement a réussi.

1 si le détachement a échoué parce que la collection n'est pas en cours.

2 si le détachement a échoué parce que la collection n'a pas pu être arrêtée.

Analyze

Analyse de la trace spécifiée.

Le chemin d'accès complet du fichier CVTrace.

0 si l'analyse a réussi.

1 si l'analyse ne peut pas démarrer car la trace spécifiée est à l'échelle du système, mais aucun processus cible n'a été spécifié.

2 si l'analyse ne peut pas démarrer car la trace n'était pas à l'échelle du système et un processus a été spécifié.

3 si l'analyse a échoué car le processus spécifié n'est pas valide.

4 si l'analyse a échoué parce que le fichier spécifié CVTrace est incorrect.

LaunchArgs

Spécifie les arguments exécutable cible.Cette option s'applique à la commande de démarrage uniquement.

Spécifie les arguments de la ligne de commande à l'application.

Aucun

Outdir

Spécifie le répertoire dans lequel enregistrer les fichiers de trace.S'applique aux commandes de lancement et commandes d'attache.

Un chemin d'accès du répertoire ou un chemin relatif.

Aucun

Processus

Spécifie le processus pour attacher lorsque la commande d'ancrage est exécutée, ou le processus dans une trace pour analyser lorsque la commande d'analyse est exécutée.S'applique aux commandes d'ancrage et d'analyse.

Le PID ou le nom du processus.

Aucun

Config

Spécifie le chemin d'accès du fichier de configuration, si vous souhaitez que les paramètres de collection plutôt que les valeurs par défaut.S'applique aux commandes de lancement, d'ancrage et d'analyse.

Le chemin du répertoire ou le chemin d'accès relatif du fichier de configuration XML.

Aucun

Personnalisation des paramètres de configuration

Si vous utilisez CVCollectionCmd pour collecter des traces et que vous souhaitez personnaliser les paramètres de collection, alors utilisez un fichier de configuration pour les spécifier.

[!REMARQUE]

Lorsque vous utilisez Visual Studio pour collecter des traces, ne modifiez pas directement le fichier de configuration.Au lieu de cela, utilisez la boite de dialogue Paramètres avancés pour modifier les paramètres.

Pour modifier les paramètres de la collection, créez un fichier de configuration sur l'ordinateur où vous exécutez l'utilitaire CVCollectionCmd.Vous pouvez créer le fichier de configuration à partir de zéro, ou vous pouvez copier le fichier de configuration de l'ordinateur sur lequel Visual Studio est installé et le modifier.Le fichier est nommé UserConfig.xml et se trouve dans le répertoire Locaux AppData .Lorsque vous exécutez l'utilitaire, utilisez l'option de configuration avec le lancement, l'ancrage, ou la commande d'analyse .Dans le paramètre associé à l'option de configuration, spécifiez le chemin d'accès du fichier de configuration.

Hh543788.collapse_all(fr-fr,VS.110).gifBalises de fichiers de configuration

Le fichier de configuration est basé sur XML.Voici les balises et des valeurs valides :

Tag

Description

Valeurs

Config

Délimite le fichier de configuration globale.

Doit contenir ces éléments :

  • MinorVersion

  • MajorVersion

MajorVersion

Spécifie la version principale du fichier de configuration.

Doit avoir la valeur 1 pour les projets Visual Studio 2012 .Si ce n'est pas 1, l'utilitaire ne fonctionne pas.

MinorVersion

Spécifie la version secondaire du fichier de configuration.

Doit être 0 pour les projets Visual Studio 2012.Si ce n'est pas 0, l'utilitaire ne fonctonnera pas.

IncludeEnvSymbolPath

Définit une valeur qui détermine si le chemin d'accès aux symboles d'environnement (_NT_SYMBOL_PATH) est utilisé.

  • True

  • False

DeleteEtlsAfterAnalysis

Définit une valeur qui détermine si les fichiers ETL sont supprimés lorsque l'analyse se termine.

  • True

  • False

SymbolPath

Spécifie le chemin d'accès au serveur de symboles.Pour plus d'informations, consultez Utilisez le serveur de symboles Microsoft pour obtenir des fichiers de symbolesde debug.

Un nom de répertoire ou une URL.

Markers

Contient la liste des fournisseurs de jeton.

Peut contenir zéro ou plusieurs éléments MarkerProvider.

MarkerProvider

Spécifie un fournisseur unique de jeton.

Doit contenir ces éléments :

  • Niveau

  • GUID

  • Name

Peut contenir ces éléments :

  • Catégories

  • IsEnabled

Niveau

Définit le niveau d'importance d'un MarkerProvider.

  • Basse

  • Normal

  • Élevée

  • Critical

  • Tous les éléments

Guid

L'identificateur global unique du fournisseur de jeton ETW.

GUID.

Name

Spécifie la description du fournisseur du marqueur.

une chaîne ;

Catégories

Spécifie les catégories collectées pour le fournisseur de jeton.

Une suite de nombres délimités par des virgules ou intervalles de nombres.

IsEnabled

Définit une valeur qui détermine si le fournisseur de jeton est activé pour la collection.

  • True

  • False

FilterConfig

Spécifie la liste des options de configuration des événements ETW qui sont filtrés à partir de la collection.

Peut contenir ces éléments :

  • CollectClrEvents

  • ClrCollectionOptions

  • CollectSampleEvents

  • CollectGpuEvents

  • CollectFileIO

CollectClrEvents

Affectez une valeur qui détermine si les événements du CLR sont collectés.

  • True

  • False

ClrCollectionOptions

Spécifie s'il faut collecter des événements de la CLR pour les applications natives, et s'il faut collecter des événements d'arrêt NGEN.

Peut contenir une, deux ou aucune de ces valeurs :

  • CollectForNative

  • DisableNGenRundown

CollectSampleEvents

Définit une valeur qui détermine si des événements d'échantillonnage sont collectés.

  • True

  • False

CollectGpuEvents

Définit une valeur qui détermine si les événements générés par DX sont collectées.

  • True

  • False

CollectFileIO

Définit une valeur qui détermine si les événements d'e/S de fichier sont collectées.

  • True

  • False

UserBufferSettings

Spécifie la liste de paramètres de mémoire utilisateur.

Doit contenir ces éléments :

  • BufferFlushTimer

  • BufferSize

  • MinimumBuffers

  • MaximumBuffers

KernelBufferSettings

Spécifie la liste de paramètres de mémoire du noyau.

Doit contenir ces éléments :

  • BufferFlushTimer

  • BufferSize

  • MinimumBuffers

  • MaximumBuffers

BufferFlushTimer

Spécifie le délai d'expiration des mémoires tampons ETW.

Un entier positif.

BufferSize

Quantité de mémoire qui est allouée pour chaque mémoire tampon de session de suivi d'événements, en kilo-octets.

Un nombre entre 0 et 1024.

MinimumBuffers

Le nombre minimal de mémoires tampons allouées pour le pool de tampons de la session de suivi d'événement.

Un nombre entier supérieur ou égal à deux fois le nombre de cœurs logiques.

MaximumBuffers

Nombre maximal de mémoires tampons allouées pour le pool de tampons de la session de suivi d'événement.

Un nombre supérieur ou égal à MinimumBuffers.

JustMyCode

Spécifie la liste des dossiers Just My Code.

Une liste de zéro ou plusieurs éléments MyCodeDirectory.

MyCodeDirectory

Spécifie un dossier qui contient votre code.

Un chemin d'accès absolu.

Hh543788.collapse_all(fr-fr,VS.110).gifExemple

Au lieu de créer un fichier de configuration à partir du début, vous pouvez copier l'exemple suivant et le modifier selon vos besoins.

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