Share via


VSInstr

Lo strumento VSInstr viene usato per instrumentare i file binari. Viene richiamato tramite la sintassi seguente:

VSInstr [/U] filename [/options]

Nella tabella seguente vengono descritte le opzioni dello strumento VSInstr:

Opzioni Descrizione
Help o ? Visualizza la Guida.
U Scrive l'output di console reindirizzato come Unicode. Deve essere la prima opzione specificata.
@filename Specifica il nome di un file di risposta che contiene un'opzione di comando per riga. Non usare virgolette.
Percorso output:path Specifica una directory di destinazione per l'immagine instrumentata. Se non si specifica un percorso di output, il file binario originale viene rinominato aggiungendo "Orig" al nome del file nella stessa directory e viene instrumentata una copia del file binario.
Escludere:funcspec Indica una specifica di funzione da escludere dalla strumentazione tramite probe. È utile quando l'inserimento di probe di profilatura in una funzione causa risultati imprevedibili o indesiderati.

Non usare opzioni Exclude e Include che fanno riferimento a funzioni nello stesso file binario.

È possibile specificare più specifiche di funzione con opzioni Exclude distinte.

funcspec è definito come:

[namespace<separator1>] [class<separator2>]function

<separator1> è :: per il codice nativo e . per il codice gestito.

<separator2> è sempre ::

L'opzione Exclude è supportata con il code coverage.

Il carattere jolly * è supportato. Ad esempio, per escludere tutte le funzioni in uno spazio dei nomi, usare:

MyNamespace::*

È possibile usare VSInstr /DumpFuncs per ottenere un elenco dei nomi completi delle funzioni nel file binario specificato.
Includono:funcspec Indica una specifica di funzione in un file binario da instrumentare tramite probe. Tutte le altre funzioni nei file binari non vengono instrumentate.

È possibile specificare più specifiche di funzione con opzioni Include distinte.

Non usare opzioni Include ed Exclude che fanno riferimento a funzioni nello stesso file binario.

L'opzione Include non è supportata con il code coverage.

funcspec è definito come:

[namespace<separator1>] [class<separator2>]function

<separator1> è :: per il codice nativo e . per il codice gestito.

<separator2> è sempre ::

Il carattere jolly * è supportato. Ad esempio, per includere tutte le funzioni in uno spazio dei nomi, usare:

MyNamespace::*

È possibile usare VSInstr /DumpFuncs per ottenere un elenco dei nomi completi delle funzioni nel file binario specificato.
DumpFuncs Elenca le funzioni nell'immagine specificata. Non viene eseguita alcuna strumentazione.
ExcludeSmallFuncs Esclude dalla strumentazione le funzioni piccole, ovvero funzioni brevi che non effettuano alcuna chiamata di funzione. L'opzione ExcludeSmallFuncs riduce il sovraccarico di strumentazione, aumentando la velocità di strumentazione.

L'esclusione delle piccole funzioni riduce anche la dimensione del file con estensione vsp e il tempo necessario per l'analisi.
Mark:{Before|After|Top|Bottom},funcname,markid Inserisce un contrassegno del profilo (un identificatore usato per delimitare i dati nei report) che è possibile usare per identificare l'inizio o la fine di un intervallo di dati nel file di report con estensione vsp.

Before - Subito prima dell'ingresso nella funzione di destinazione.

After - Subito dopo l'uscita dalla funzione di destinazione.

Top - Subito dopo l'ingresso nella funzione di destinazione.

Bottom - Subito prima di ogni restituzione del controllo nella funzione di destinazione.

funcname - Nome della funzione di destinazione.

Markid - Numero intero positivo (long) da usare come identificatore del contrassegno del profilo.
Copertura Esegue la strumentazione di tipo code coverage. Può essere usato solo con le opzioni seguenti: Verbose, OutputPath, Exclude e Logfile.
Verbose L'opzione Verbose consente di visualizzare informazioni dettagliate sul processo di strumentazione.
NoWarn[:[Message Number[;Message Number]]] Elimina tutti gli avvisi o avvisi specifici.

Message Number - Numero di avviso. Se Message Number viene omesso, vengono eliminati tutti gli avvisi.

Per altre informazioni, vedere Avvisi di VSInstr.
Control:{Thread | Process Global | } Specifica il livello di profilatura delle seguenti opzioni di controllo della raccolta dei dati di VSInstr:

Avviare

StartOnly

Sospendi

StopOnly

SuspendOnly

ResumeOnly

Thread -Specifica le funzioni di controllo della raccolta dei dati a livello di thread. La profilatura viene avviata o arrestata solo per il thread corrente. Lo stato di profilatura degli altri thread non è interessato. Il valore predefinito è Thread.

Process -Specifica le funzioni di controllo della raccolta dei dati di profilatura a livello di processo. La profilatura viene avviata o arrestata per tutti i thread nel processo corrente. Lo stato di profilatura di altri processi non è interessato.

Global -Specifica le funzioni di controllo della raccolta dei dati (su diversi processi) a livello globale.

Se non si specifica il livello di profilatura, si verifica un errore.
Start:{Inside | Outside},funcname Limita la raccolta dei dati alla funzione di destinazione e alle funzioni figlio chiamate da tale funzione.

Inside - Inserisce la funzione StartProfile subito dopo l'ingresso nella funzione di destinazione. Inserisce la funzione StopProfile subito prima di ogni restituzione nella funzione di destinazione.

Outside - Inserisce la funzione StartProfile subito prima di ogni chiamata alla funzione di destinazione. Inserisce la funzione StopProfile subito dopo ogni chiamata alla funzione di destinazione.

funcname - Nome della funzione di destinazione.
Suspend:{Inside | Outside},funcname Esclude la raccolta dei dati per la funzione di destinazione e le funzioni figlio chiamate dalla funzione.

Inside - Inserisce la funzione SuspendProfile subito dopo l'ingresso nella funzione di destinazione. Inserisce la funzione ResumeProfile subito prima di ogni restituzione nella funzione di destinazione.

Outside - Inserisce la funzione SuspendProfile subito prima dell'ingresso nella funzione di destinazione. Inserisce la funzione ResumeProfile subito dopo l'uscita dalla funzione di destinazione.

funcname - nome della funzione di destinazione.

Se la funzione di destinazione contiene una funzione StartProfile, la funzione SuspendProfile viene inserita prima. Se la funzione di destinazione contiene una funzione StartProfile, la funzione ResumeProfile viene inserita dopo.
StartOnly:{Before | After | Top | Bottom},funcname Avvia la raccolta dei dati durante un'esecuzione di profilatura. Inserisce la funzione API StartProfile nella posizione specificata.

Before - subito prima dell'ingresso nella funzione di destinazione.

After - subito dopo l'uscita dalla funzione di destinazione.

Top - subito dopo l'ingresso nella funzione di destinazione.

Bottom - subito prima di ogni restituzione del controllo nella funzione di destinazione.

funcname - nome della funzione di destinazione.
StopOnly:{Before|After|Top|Bottom},funcname Interrompe la raccolta dei dati durante un'esecuzione di profilatura. Inserisce la funzione StopProfile nella posizione specificata.

Before - subito prima dell'ingresso nella funzione di destinazione.

After - subito dopo l'uscita dalla funzione di destinazione.

Top - subito dopo l'ingresso nella funzione di destinazione.

Bottom - subito prima di ogni restituzione del controllo nella funzione di destinazione.

funcname - nome della funzione di destinazione.
SuspendOnly:{Before|After|Top|Bottom},funcname Interrompe la raccolta dei dati durante un'esecuzione di profilatura. Inserisce l'API SuspendProfile nella posizione specificata.

Before - subito prima dell'ingresso nella funzione di destinazione.

After - subito dopo l'uscita dalla funzione di destinazione.

Top - subito dopo l'ingresso nella funzione di destinazione.

Bottom - subito prima di ogni restituzione del controllo nella funzione di destinazione.

funcname - nome della funzione di destinazione.

Se la funzione di destinazione contiene una funzione StartProfile, la funzione SuspendProfile viene inserita prima.
ResumeOnly:{Before|After|Top|Bottom},funcname Avvia o riprende la raccolta dei dati durante un'esecuzione di profilatura.

In genere, viene usato per avviare la profilatura dopo che un'opzione SuspendOnly ha terminato la profilatura. Inserisce un'API ResumeProfile nella posizione specificata.

Before - subito prima dell'ingresso nella funzione di destinazione.

After - subito dopo l'uscita dalla funzione di destinazione.

Top - subito dopo l'ingresso nella funzione di destinazione.

Bottom - subito prima di ogni restituzione del controllo nella funzione di destinazione.

funcname - nome della funzione di destinazione.

Se la funzione di destinazione contiene una funzione StartProfile, la funzione ResumeProfile viene inserita dopo.

Vedi anche