Share via


VSInstr

Das VSInstr-Tool wird zum Instrumentieren von Binärdateien verwendet. Es wird mithilfe der folgenden Syntax aufgerufen:

VSInstr [/U] filename [/options]

In der folgenden Tabelle werden die Optionen des VSInstr-Tools beschrieben:

Optionen Beschreibung
Help oder ? Zeigt die Hilfe an.
U Schreibt die umgeleitete Konsolenausgabe als Unicode. Dabei muss es sich um die erste angegebene Option handeln.
@filename Gibt den Namen einer Antwortdatei an, die eine Befehlsoption pro Zeile enthält. Verwenden Sie keine Anführungszeichen.
OutputPath:path Gibt ein Zielverzeichnis für das instrumentierte Image an. Wenn kein Ausgabepfad angegeben wird, wird die ursprüngliche Binärdatei umbenannt, indem „Orig“ an den Dateinamen im gleichen Verzeichnis angefügt wird, und es wird eine Kopie der Binärdatei instrumentiert.
Exclude:funcspec Gibt eine Funktionsspezifikation zum Ausschließen von der Instrumentierung durch Überprüfungen an. Dies ist hilfreich, wenn die Profilerstellung zum Einfügen der Überprüfung in einer Funktion unvorhersehbare oder unerwünschte Ergebnisse verursacht.

Verwenden Sie keine Exclude- und Include-Optionen, die sich auf Funktionen in der gleichen Binärdatei beziehen.

Sie können mehrere Funktionsspezifikationen mit separaten Exclude-Optionen angeben.

funcspec wird folgendermaßen definiert:

[Namespace<Trennzeichen1>] [Klasse<Trennzeichen2>]Funktion

<Trennzeichen1 > ist :: für nativen Code und . für verwalteten Code.

<Trennzeichen2> ist immer ::

Exclude wird mit Code Coverage unterstützt.

Das Platzhalterzeichen * wird unterstützt. Verwenden Sie beispielsweise Folgendes, um alle Funktionen in einem Namespace auszuschließen:

MyNamespace::*

Sie können VSInstr /DumpFuncs verwenden, um die vollständigen Namen von Funktionen in der angegebenen Binärdatei aufzulisten.
Include:funcspec Gibt eine Funktionsspezifikation in einer Binärdatei an, um mit Überprüfungen zu instrumentieren. Alle anderen Funktionen in den Binärdateien werden nicht instrumentiert.

Sie können mehrere Funktionsspezifikationen mit separaten Include-Optionen angeben.

Verwenden Sie keine Include- und Exclude-Optionen, die sich auf Funktionen in der gleichen Binärdatei beziehen.

Include wird mit Code Coverage nicht unterstützt.

funcspec wird folgendermaßen definiert:

[Namespace<Trennzeichen1>] [Klasse<Trennzeichen2>]Funktion

<Trennzeichen1 > ist :: für nativen Code und . für verwalteten Code.

<Trennzeichen2> ist immer ::

Das Platzhalterzeichen * wird unterstützt. Verwenden Sie beispielsweise Folgendes, um alle Funktionen in einem Namespace einzuschließen:

MyNamespace::*

Sie können VSInstr /DumpFuncs verwenden, um die vollständigen Namen von Funktionen in der angegebenen Binärdatei aufzulisten.
DumpFuncs Listet die Funktionen innerhalb des angegebenen Images auf. Es wird keine Instrumentierung durchgeführt.
ExcludeSmallFuncs Schließt kleine Funktionen, also kurze Funktionen, die keine Funktionsaufrufe ausführen, aus der Instrumentierung aus. Die Option ExcludeSmallFuncs bietet bei weniger Instrumentierungsoverhead eine daher verbesserte Instrumentierungsgeschwindigkeit.

Der Ausschluss kleiner Funktionen reduziert auch die Größe der VSP-Datei und den Zeitaufwand für die Analyse.
Mark: {Before|After|Top|Bottom},funcname,markid Fügt eine Profilmarkierung (ein Bezeichner, der zum Einschränken der Daten in Berichten verwendet wird) ein, die Sie zum Identifizieren des Beginns oder des Endes eines Datenbereichs in der VSP-Berichtsdatei verwenden können.

Before: Unmittelbar vor dem Zielfunktionseintrag.

After: Unmittelbar nach dem Zielfunktionsausgang.

Top: Unmittelbar nach dem Zielfunktionseintrag.

Bottom: Unmittelbar vor jeder Rückgabe in der Zielfunktion.

funcname: Name der Zielfunktion

Markid: Eine positive ganze Zahl (lang), die als Bezeichner der Profilmarkierung verwendet werden soll.
Coverage Führt die Coverage-Instrumentierung durch. Sie kann nur mit den folgenden Optionen verwendet werden: Verbose, OutputPath, Exclude und Logfile.
Verbose Die Verbose-Option wird verwendet, um detaillierte Informationen zum Instrumentierungsprozess anzuzeigen.
NoWarn[:[Message Number[;Message Number]]] Alle oder bestimmte Warnungen unterdrücken.

Message Number: Warnnummer. Wenn Message Number ausgelassen wird, werden alle Warnungen unterdrückt.

Weitere Informationen finden Sie unter VSInstr-Warnungen.
Steuerung:{Thread | Prozess | Global} Gibt die Profilerstellungsebene der folgenden VSInstr-Steuerungsoptionen für die Datensammlung an:

Start

StartOnly

Suspend

StopOnly

SuspendOnly

ResumeOnly

Thread: Gibt die Steuerungsfunktionen für die Datensammlung auf Thread-Ebene an. Die Profilerstellung wird nur für den aktuellen Thread gestartet oder angehalten. Der Profilerstellungsstatus anderer Threads ist nicht betroffen. Der Standardwert ist Thread.

Process: Gibt die Steuerungsfunktionen für die Profildatensammlung auf Prozessebene an. Die Profilerstellung wird für alle Threads im aktuellen Prozess gestartet oder angehalten. Der Profilerstellungsstatus anderer Prozesse ist nicht betroffen.

Global: Gibt die Steuerungsfunktionen für die Datensammlung auf globaler Ebene (prozessübergreifend) an.

Wenn Sie die Profilerstellungsebene nicht angeben, tritt ein Fehler auf.
Start:{Inside | Outside},funcname Beschränkt die Datensammlung auf die Zielfunktion und die untergeordneten Funktionen, die von dieser Funktion aufgerufen werden.

Inside: Fügt die Funktion „StartProfile“ direkt nach dem Eintrag zur Zielfunktion ein. Fügt die Funktion „StopProfile“ direkt vor jeder Rückgabe in der Zielfunktion ein.

Outside: Fügt die Funktion „StartProfile“ direkt vor jedem Aufruf zur Zielfunktion ein. Fügt die Funktion „StopProfile“ direkt vor nach jedem Aufruf zur Zielfunktion ein.

funcname: Der Name der Zielfunktion.
Suspend:{Inside | Outside},funcname Beschränkt die Datensammlung für die Zielfunktion und die untergeordneten Funktionen, die von der Funktion aufgerufen werden.

Inside: Fügt die Funktion „SuspendProfile“ direkt nach dem Eintrag zur Zielfunktion ein. Fügt die Funktion „ResumeProfile“ direkt vor jeder Rückgabe in der Zielfunktion ein.

Outside: Fügt die Funktion „SuspendProfile“ direkt vor dem Eintrag zur Zielfunktion ein. Fügt die Funktion „ResumeProfile“ direkt nach dem Ausgang der Zielfunktion ein.

funcname: Name der Zielfunktion.

Wenn die Zielfunktion eine „StartProfile“-Funktion enthält, wird die Funktion „SuspendProfile“ vor dieser eingefügt. Wenn die Zielfunktion eine „StopProfile“-Funktion enthält, wird die Funktion „ResumeProfile“ nach dieser eingefügt.
StartOnly:{Before | After | Top | Bottom},funcname Startet die Datensammlung während einer Profilerstellung. Fügt die StartProfile-API-Funktion an der angegebenen Position ein.

Before: Unmittelbar vor dem Zielfunktionseintrag.

After: Unmittelbar nach dem Zielfunktionsausgang.

Top: Unmittelbar nach dem Zielfunktionseintrag.

Bottom: Unmittelbar vor jeder Rückgabe in der Zielfunktion.

funcname: Name der Zielfunktion.
StopOnly: {Before|After|Top|Bottom},funcname Stoppt die Datensammlung während einer Profilerstellung. Fügt die „StopProfile“-Funktion an der angegebenen Position ein.

Before: Unmittelbar vor dem Zielfunktionseintrag.

After: Unmittelbar nach dem Zielfunktionsausgang.

Top: Unmittelbar nach dem Zielfunktionseintrag.

Bottom: Unmittelbar vor jeder Rückgabe in der Zielfunktion.

funcname: Name der Zielfunktion.
SuspendOnly: {Before|After|Top|Bottom},funcname Stoppt die Datensammlung während einer Profilerstellung. Fügt die „SuspendProfile“-API an der angegebenen Position ein.

Before: Unmittelbar vor dem Zielfunktionseintrag.

After: Unmittelbar nach dem Zielfunktionsausgang.

Top: Unmittelbar nach dem Zielfunktionseintrag.

Bottom: Unmittelbar vor jeder Rückgabe in der Zielfunktion.

funcname: Name der Zielfunktion.

Wenn die Zielfunktion eine „StartProfile“-Funktion enthält, wird die Funktion „SuspendProfile“ vor dieser eingefügt.
ResumeOnly: {Before|After|Top|Bottom},funcname Startet die Datensammlung während einer Profilerstellung oder setzt sie fort.

Wird normalerweise dazu verwendet, die Profilerstellung zu starten, nachdem die Option SuspendOnly die Profilerstellung beendet hat. Fügt eine ResumeProfile-API an der angegebenen Position ein.

Before: Unmittelbar vor dem Zielfunktionseintrag.

After: Unmittelbar nach dem Zielfunktionsausgang.

Top: Unmittelbar nach dem Zielfunktionseintrag.

Bottom: Unmittelbar vor jeder Rückgabe in der Zielfunktion.

funcname: Name der Zielfunktion.

Wenn die Zielfunktion eine „StopProfile“-Funktion enthält, wird die Funktion „ResumeProfile“ nach dieser eingefügt.

Siehe auch