VSInstr
Aggiornamento: novembre 2007
Lo strumento VSInstr consente di eseguire la strumentazione dei binari e viene richiamato mediante la sintassi seguente:
VSInstr [/U] filename [/options]
Nella tabella riportata di seguito sono descritte le opzioni dello strumento VSInstr.
Opzioni |
Descrizione |
---|---|
HELP oppure ? |
Consente di visualizzare la Guida in linea. |
U |
L'opzione U scrive l’output della console reindirizzato come Unicode. Deve essere la prima opzione specificata. |
@filename |
Il file di risposta deve contenere un'opzione di comando per riga. Non utilizzare le virgolette. |
OUTPUTPATH:path |
Directory di destinazione per l'immagine instrumentata. Se non si specifica un percorso di output, il binario originale viene rinominato con l'aggiunta di "Orig" alla fine del nome file all'interno della stessa directory e viene instrumentata una copia del binario. |
CONTROL:{THREAD|PROCESS|GLOBAL} |
L'opzione CONTROL consente di specificare il livello di analisi per le funzioni di controllo della raccolta dei dati riportate di seguito. StartProfile StopProfile SuspendProfile ResumeProfile THREAD: specifica le funzioni di controllo della raccolta dei dati a livello di thread. L'analisi viene avviata o interrotta solo per il thread corrente. Non viene influenzato lo stato di analisi degli altri thread. Il valore predefinito è thread. PROCESS: specifica le funzioni di controllo della raccolta dei dati di analisi a livello di processo. L'analisi viene avviata o interrotta per tutti i thread del processo corrente. Non viene influenzato lo stato di analisi degli altri processi. GLOBAL: specifica le funzioni di controllo della raccolta dei dati a livello globale, ovvero tra i processi. Se non si specifica il livello di analisi, si verifica un errore. |
START:{INSIDE|OUTSIDE},funcname |
L'opzione START viene utilizzata per limitare la raccolta dati alla funzione di destinazione e alle funzioni figlio chiamate dalla funzione in oggetto. INSIDE: inserisce la funzione StartProfile dopo l'ingresso nella funzione di destinazione. Inserisce la funzione StopProfile prima di ogni restituzione nella funzione di destinazione. OUTSIDE: inserisce la funzione StartProfile prima di ogni chiamata alla funzione di destinazione. Inserisce la funzione StopProfile dopo ogni chiamata alla funzione di destinazione. funcname: nome della funzione di destinazione. |
SUSPEND:{INSIDE|OUTSIDE},funcname |
L'opzione SUSPEND viene utilizzata per escludere la raccolta dati per la funzione di destinazione e le funzioni figlio chiamate dalla funzione in oggetto. INSIDE: inserisce la funzione SuspendProfile dopo l'ingresso nella funzione di destinazione. Inserisce la funzione ResumeProfile prima di ogni restituzione nella funzione di destinazione. OUTSIDE: inserisce la funzione SuspendProfile prima dell'ingresso nella funzione di destinazione. Inserisce la funzione ResumeProfile dopo l'uscita dalla funzione di destinazione. funcname: nome della funzione di destinazione. Se la funzione di destinazione contiene una funzione StartProfile, prima di quest'ultima verrà inserita la funzione SuspendProfile. Se la funzione di destinazione contiene una funzione StopProfile, dopo di essa verrà inserita la funzione ResumeProfile. |
STARTONLY:{BEFORE|AFTER|TOP|BOTTOM},funcname |
L'opzione STARTONLY consente di avviare la raccolta dati durante una sessione di analisi. Tale opzione inserisce la funzione API StartProfile nella posizione specificata. BEFORE: prima dell'ingresso della funzione di destinazione. AFTER: dopo l'uscita dalla funzione di destinazione. TOP: dopo l'ingresso della funzione di destinazione. BOTTOM: prima di ogni restituzione nella funzione di destinazione. funcname: nome della funzione di destinazione. |
STOPONLY:{BEFORE|AFTER|TOP|BOTTOM},funcname |
L'opzione STOPONLY consente di interrompere la raccolta dati durante una sessione di analisi. Tale opzione inserisce la funzione StopProfile nella posizione specificata. BEFORE: prima dell'ingresso della funzione di destinazione. AFTER: dopo l'uscita dalla funzione di destinazione. TOP: dopo l'ingresso della funzione di destinazione. BOTTOM: prima di ogni restituzione nella funzione di destinazione. funcname: nome della funzione di destinazione. |
SUSPENDONLY:{BEFORE|AFTER|TOP|BOTTOM},funcname |
L'opzione SUSPENDONLY consente di interrompere la raccolta dati durante una sessione di analisi. Tale opzione inserisce la funzione API SuspendProfile nella posizione specificata. BEFORE: prima dell'ingresso della funzione di destinazione. AFTER: dopo l'uscita dalla funzione di destinazione. TOP: dopo l'ingresso della funzione di destinazione. BOTTOM: prima di ogni restituzione nella funzione di destinazione. funcname: nome della funzione di destinazione. Se la funzione di destinazione contiene una funzione StartProfile, prima di quest'ultima verrà inserita la funzione SuspendProfile. |
RESUMEONLY:{BEFORE|AFTER|TOP|BOTTOM},funcname |
L'opzione RESUMEONLY consente di avviare o riprendere la raccolta dati durante una sessione di analisi. Di solito, viene utilizzata per avviare l'analisi dopo l'interruzione di tale operazione mediante un'opzione SUSPENDONLY. Tale opzione inserisce la funzione API ResumeProfile nella posizione specificata. BEFORE: prima dell'ingresso della funzione di destinazione. AFTER: dopo l'uscita dalla funzione di destinazione. TOP: dopo l'ingresso della funzione di destinazione. BOTTOM: prima di ogni restituzione nella funzione di destinazione. funcname: nome della funzione di destinazione. Se la funzione di destinazione contiene una funzione StopProfile, dopo di essa verrà inserita la funzione ResumeProfile. |
EXCLUDE:funcspec |
L'opzione EXCLUDE consente di specificare una funzione da escludere dalla strumentazione mediante i controlli. Tale opzione risulta utile quando l'inserimento di controlli di analisi in una funzione causa risultati imprevedibili o indesiderati. Non utilizzare le opzioni EXCLUDE e INCLUDE che fanno riferimento a funzioni presenti nello stesso binario. È possibile indicare più specifiche di funzione con opzioni EXCLUDE separate. funcspec viene definita come: [namespace<separatore1>] [class<separatore2>]function <separatore1> corrisponde a :: e . rispettivamente per il codice nativo e per il codice gestito. <separatore2> è sempre :: L'opzione EXCLUDE è supportata con il code coverage. Per escludere tutte le funzioni di uno spazio dei nomi, utilizzare il carattere jolly: MyNamespace::* |
INCLUDE:funcspec |
L'opzione INCLUDE indica una specifica di funzione in un binario da instrumentare con probe. Tutte le altre funzioni dei binari non vengono instrumentate. È possibile indicare più specifiche di funzione con opzioni INCLUDE separate. Non utilizzare le opzioni INCLUDE ed EXCLUDE che fanno riferimento a funzioni presenti nello stesso binario. L'opzione INCLUDE non è supportata con il code coverage. funcspec viene definita come: [namespace<separatore1>] [class<separatore2>]function <separatore1> corrisponde a :: e . rispettivamente per il codice nativo e per il codice gestito. <separatore2> è sempre :: |
EXCLUDESMALLFUNCS |
Dalla strumentazione vengono escluse le piccole funzioni che sono funzioni brevi che non effettuano alcuna chiamata di funzione. L'opzione EXCLUDESMALLFUNCS fornisce per un minore sovraccarico di strumentazione una migliore velocità di strumentazione. L'esclusione di piccole funzioni riduce inoltre la dimensione del file .vsp e il tempo necessario per l'analisi. |
MARK:{BEFORE|AFTER|TOP|BOTTOM},funcname,markid |
L'opzione MARK inserisce una funzione API MarkProfile all'ingresso o all'uscita dalla funzione di destinazione. L'API MarkProfile inserisce un contrassegno di analisi, ovvero un identificatore che consente di delimitare i dati nei report, che è possibile utilizzare per identificare l'inizio o la fine di un intervallo di dati nel file di report vsp. BEFORE: prima dell'ingresso della funzione di destinazione. AFTER: dopo l'uscita dalla funzione di destinazione. TOP: dopo l'ingresso della funzione di destinazione. BOTTOM: prima di ogni restituzione nella funzione di destinazione. funcname: nome della funzione di destinazione. Markid: valore integer positivo (long) da utilizzare come identificatore del contrassegno di analisi. |
COVERAGE |
L'opzione COVERAGE esegue la strumentazione di tipo code coverage e può essere utilizzata in combinazione con l'opzione OUTPUTPATH. |
VERBOSE |
L'opzione VERBOSE consente di visualizzare informazioni dettagliate sul processo di strumentazione. |
NOWARN[:[Message Number[;Message Number]]] |
L'opzione NOWARN viene utilizzata per eliminare tutti gli avvisi o avvisi specifici. Message Number: numero dell'avviso. Se il parametro Message Number viene omesso, vengono eliminati tutti gli avvisi. Per ulteriori informazioni, vedere Avvisi di VSInstr. |
DUMPFUNCS |
L'opzione DUMPFUNCS visualizza le funzioni all'interno dell'immagine specificata. La strumentazione non viene eseguita. |
Vedere anche
Riferimenti
Definizioni delle colonne dei report degli strumenti di analisi