VSInstr

L’outil VSInstr est utilisé pour instrumenter des ressources binaires. Il est appelé à l’aide de la syntaxe suivante :

VSInstr [/U] filename [/options]

Le tableau suivant décrit les options de l’outil VSInstr :

Options Description
Help ou ? Affiche de l’aide.
U Écrit la sortie redirigée de la console au format Unicode. Cela doit être la première option spécifiée.
@filename Spécifie le nom d’un fichier réponse qui contient une option de commande par ligne. N’utilisez pas de guillemets.
OutputPath:path Spécifie un répertoire de destination pour l’image instrumentée. Si aucun chemin de sortie n’est spécifié, le binaire d’origine est renommé en ajoutant « Orig » au nom de fichier dans le même répertoire, et une copie du binaire est instrumentée.
Exclure :funcspec Spécifie une spécification de fonction à exclure de l’instrumentation par les sondes. Cette option est utile quand le profilage d’une insertion de sondes dans une fonction provoque des résultats inattendus ou non souhaités.

N’utilisez pas d’options Exclude et Include qui font référence à des fonctions dans le même binaire.

Vous pouvez spécifier plusieurs spécifications de fonction avec différentes options Exclude.

funcspec est défini comme suit :

[espace de noms<séparateur1>] [classe<séparateur2>]fonction

<séparateur1> est :: pour le code natif et . pour le code managé.

<séparateur2> est toujours ::

Exclude est pris en charge avec la couverture du code.

Le caractère générique * est pris en charge. Par exemple, pour exclure toutes les fonctions dans un espace de noms, utilisez :

MonEspace_de_noms::*

Vous pouvez utiliser VSInstr /DumpFuncs pour répertorier les noms complets des fonctions dans le binaire spécifié.
Inclure :funcspec Spécifie une spécification de fonction dans un binaire à instrumenter avec les sondes. Toutes les autres fonctions dans les binaires ne sont pas instrumentées.

Vous pouvez spécifier plusieurs spécifications de fonction avec différentes options Include.

N’utilisez pas d’options Include et Exclude qui font référence à des fonctions dans le même binaire.

Include n’est pas pris en charge avec la couverture du code.

funcspec est défini comme suit :

[espace de noms<séparateur1>] [classe<séparateur2>]fonction

<séparateur1> est :: pour le code natif et . pour le code managé.

<séparateur2> est toujours ::

Le caractère générique * est pris en charge. Par exemple, pour inclure toutes les fonctions dans un espace de noms, utilisez :

MonEspace_de_noms::*

Vous pouvez utiliser VSInstr /DumpFuncs pour répertorier les noms complets des fonctions dans le binaire spécifié.
DumpFuncs Répertorie les fonctions dans l’image spécifiée. Aucune instrumentation n’est effectuée.
ExcludeSmallFuncs Exclut de l’instrumentation les petites fonctions (fonctions courtes qui n’effectuent pas d’appels de fonction). L’option ExcludeSmallFuncs permet de réduire la charge liée à l’instrumentation et donc d’accélérer celle-ci.

L’exclusion des petites fonctions réduit également la taille du fichier .vsp et le temps nécessaire à l’analyse.
Mark:{Before|After|Top|Bottom},funcname,markid Insère une marque de profil (identificateur utilisé pour délimiter les données dans les rapports) que vous pouvez utiliser pour identifier le début ou la fin d’une plage de données dans le fichier de rapport .vsp.

Before : juste avant l’entrée dans la fonction cible.

After : juste après la sortie de la fonction cible.

Top : juste après l’entrée dans la fonction cible.

Bottom : juste avant chaque retour dans la fonction cible.

funcname : nom de la fonction cible

Markid : entier positif (long) à utiliser comme identificateur de la marque de profil.
Couverture Exécute l’instrumentation de la couverture. Cette option peut être utilisée uniquement avec les options suivantes : Verbose, OutputPath, Exclude et Logfile.
Verbose L’option Verbose permet d’afficher des informations détaillées sur le processus d’instrumentation.
NoWarn[:[Message Number[;Message Number]]] Supprimer la totalité ou une partie spécifique des avertissements.

Message Number : numéro d’avertissement. Si Message Number est omis, tous les avertissements sont supprimés.

Pour plus d’informations, consultez Avertissements VSInstr.
Contrôle :{Thread | Processus | Global} Spécifie le niveau de profilage des options suivantes du contrôle de la collecte de données VSInstr :

Start

StartOnly

Suspendre

StopOnly

SuspendOnly

ResumeOnly

Thread : spécifie les fonctions de contrôle de collecte de données au niveau du thread. Le profilage est démarré ou arrêté uniquement pour le thread actuel. L’état de profilage des autres threads n’est pas affecté. La valeur par défaut correspond au thread.

Process : spécifie les fonctions de contrôle de collecte de données de profilage au niveau du processus. Le profilage démarre ou s’arrête pour tous les threads dans le processus actuel. L’état de profilage des autres processus n’est pas affecté.

Global : spécifie les fonctions de contrôle de collecte de données (interprocessus) au niveau global.

Une erreur se produit si vous ne spécifiez pas le niveau de profilage.
Début :{Intérieur | Extérieur},funcname Limite la collecte de données à la fonction cible et aux fonctions enfants appelées par cette fonction.

Inside : insère la fonction StartProfile immédiatement après l’entrée dans la fonction cible. Insère la fonction StopProfile juste avant chaque retour dans la fonction cible.

Outside : insère la fonction StartProfile juste avant chaque appel à la fonction cible. Insère la fonction StopProfile immédiatement après chaque appel à la fonction cible.

funcname : nom de la fonction cible.
Suspendre :{Intérieur | Extérieur},funcname Exclut la collecte de données pour la fonction cible et les fonctions enfants appelées par la fonction.

Inside : insère la fonction SuspendProfile immédiatement après l’entrée dans la fonction cible. Insère la fonction ResumeProfile juste avant chaque retour dans la fonction cible.

Outside : insère la fonction SuspendProfile juste avant l’entrée dans la fonction cible. Insère la fonction ResumeProfile immédiatement après la sortie de la fonction cible.

funcname : nom de la fonction cible

Si la fonction cible contient une fonction StartProfile, la fonction SuspendProfile est insérée avant celle-ci. Si la fonction cible contient une fonction StopProfile, la fonction ResumeProfile est insérée après celle-ci.
StartOnly:{Before | After | Top | Bottom},funcname Commence la collecte de données pendant une exécution de profilage. Elle insère la fonction API StartProfile à l’emplacement spécifié.

Before : juste avant l’entrée dans la fonction cible.

After : juste après la sortie de la fonction cible.

Top : juste après l’entrée dans la fonction cible.

Bottom : juste avant chaque retour dans la fonction cible.

funcname : nom de la fonction cible
StopOnly:{Before|After|Top|Bottom},funcname Arrête la collecte de données pendant une exécution de profilage. Elle insère la fonction StopProfile à l’emplacement spécifié.

Before : juste avant l’entrée dans la fonction cible.

After : juste après la sortie de la fonction cible.

Top : juste après l’entrée dans la fonction cible.

Bottom : juste avant chaque retour dans la fonction cible.

funcname : nom de la fonction cible
SuspendOnly:{Before|After|Top|Bottom},funcname Arrête la collecte de données pendant une exécution de profilage. Elle insère l’API SuspendProfile à l’emplacement spécifié.

Before : juste avant l’entrée dans la fonction cible.

After : juste après la sortie de la fonction cible.

Top : juste après l’entrée dans la fonction cible.

Bottom : juste avant chaque retour dans la fonction cible.

funcname : nom de la fonction cible

Si la fonction cible contient une fonction StartProfile, la fonction SuspendProfile est insérée avant celle-ci.
ResumeOnly:{Before|After|Top|Bottom},funcname Commence ou reprend la collecte de données pendant une exécution de profilage.

Elle est généralement utilisée pour commencer un profilage après l’arrêt d’un profilage par une option SuspendOnly. Elle insère une API ResumeProfile à l’emplacement spécifié.

Before : juste avant l’entrée dans la fonction cible.

After : juste après la sortie de la fonction cible.

Top : juste après l’entrée dans la fonction cible.

Bottom : juste avant chaque retour dans la fonction cible.

funcname : nom de la fonction cible

Si la fonction cible contient une fonction StopProfile, la fonction ResumeProfile est insérée après celle-ci.

Voir aussi