VSInstr
L'outil VSInstr permet d'instrumenter les 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 l'aide. |
U |
Écrit la sortie de console redirigée en Unicode.Il doit s'agir de la première option spécifiée. |
@filename |
Indique le nom d'un fichier de réponse contenant une option de commande par ligne. N'utilisez pas de guillemets. |
OutputPath:path |
Indique un répertoire de destination pour l'image instrumentée.Si un chemin de sortie n'est pas 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. |
Exclude:funcspec |
Indique une spécification de fonction à exclure de l'instrumentation par les sondes.Cela est utile lorsque l'insertion de la sonde de profilage dans une fonction provoque des résultats inattendus ou non souhaités. N'utilisez pas les options Exclude et Include qui font référence aux fonctions du même binaire. Vous pouvez déterminer la spécification de plusieurs fonctions avec des options Exclude distinctes. funcspec est défini comme : [namespace<separator1>] [class<separator2>]function <separator1> 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 d'un espace de noms, utilisez : MyNamespace::* Vous pouvez utiliser VSInstr /DumpFuncs pour répertorier les noms complets des fonctions dans le binaire spécifié. |
Include:funcspec |
Indique 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 déterminer plusieurs spécifications de fonctions avec des options Include distinctes. N'utilisez pas les options Include et Exclude qui font référence aux fonctions du même binaire. Include n'est pas pris en charge avec la couverture du code. funcspec est défini comme : [namespace<separator1>] [class<separator2>]function <separator1> 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 d'un espace de noms, utilisez : MyNamespace::* 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 qui sont des fonctions courtes qui ne passent pas d'appels de fonction.L'option ExcludeSmallFuncs entraîne une moindre surcharge d'instrumentation et donc une vitesse d'instrumentation améliorée. L'exclusion des petites fonctions réduit également la taille du fichier .vsp et le temps requis pour l'analyse. |
Mark:{Before|After|Top|Bottom},funcname,markid |
Insère une marque de profil (identificateur utilisé pour délimiter les données des 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 de la fonction cible. After- Juste après la sortie de la fonction cible. Top- Juste après l'entrée de 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. |
Coverage |
Assure l'instrumentation de couverture.Il peut être utilisé 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]]] |
Supprime les avertissements spécifiques ou tous les 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. |
Control:{Thread|Process|Global} |
Spécifie le niveau de profilage des Options de contrôle de collecte de données VSInstr suivantes : Start StartOnly Suspend 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 est thread. Process- spécifie les fonctions de contrôle de collecte des données de profilage au niveau du processus.Le profilage démarre ou s'arrête pour tous les threads du 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. |
Start:{Inside|Outside},funcname |
Limite la collecte de données à la fonction cible et aux fonctions enfants appelées par cette fonction. Inside- Insère immédiatement la fonction StartProfile après l'entrée à la fonction cible.Insère immédiatement la fonction StopProfile avant chaque retour dans la fonction cible. Outside- Insère immédiatement la fonction StartProfile avant chaque appel à la fonction cible.Insère immédiatement la fonction StopProfile après chaque appel à la fonction cible. funcname - nom de la fonction cible. |
Suspend:{Inside|Outside},funcname |
Exclut la collecte de données pour la fonction cible et les fonctions enfants appelées par la fonction. Inside- Insère immédiatement la fonction SuspendProfile après l'entrée à la fonction cible.Insère immédiatement la fonction ResumeProfile avant chaque retour dans la fonction cible. Outside- Insère immédiatement la fonction SuspendProfile avant l'entrée à la fonction cible.Insère immédiatement la fonction ResumeProfile 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 elle.Si la fonction cible contient une fonction StopProfile, la fonction ResumeProfile est insérée après elle. |
StartOnly:{Before|After|Top|Bottom},funcname |
Commence la collecte de données pendant une exécution du profilage.Elle insère la fonction API StartProfile à l'emplacement spécifié. Before - juste avant l'entrée de la fonction cible. After - juste après la sortie de la fonction cible. Top - juste après l'entrée de la fonction cible. Bottom - juste avant chaque retour dans la fonction cible. funcname - nom de la fonction cible. |
StopOnly:{Before|After|Top|Bottom},funcname |
Suspend la collecte de données pendant une exécution du profilage.Elle insère la fonction StopProfile à l'emplacement spécifié. Before - juste avant l'entrée de la fonction cible. After - juste après la sortie de la fonction cible. Top - juste après l'entrée de la fonction cible. Bottom - juste avant chaque retour dans la fonction cible. funcname - nom de la fonction cible. |
SuspendOnly:{Before|After|Top|Bottom},funcname |
Suspend la collecte de données pendant une exécution du profilage.Elle insère l'API SuspendProfile à l'emplacement spécifié. Before - juste avant l'entrée de la fonction cible. After - juste après la sortie de la fonction cible. Top - juste après l'entrée de 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 elle. |
ResumeOnly:{Before|After|Top|Bottom},funcname |
Commence ou reprend la collecte de données pendant une exécution du profilage. Elle est généralement utilisée pour commencer le profilage après qu'une option SuspendOnly l'a arrêté.Elle insère une API ResumeProfile à l'emplacement spécifié. Before - juste avant l'entrée de la fonction cible. After - juste après la sortie de la fonction cible. Top - juste après l'entrée de 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 elle. |