VSInstr
Narzędzie VSInstr jest używane do instrumentacji plików binarnych.Jest ono wywoływane przy użyciu następującej składni:
VSInstr [/U] filename [/options]
W poniższej tabeli opisano opcje narzędzia VSInstr:
Opcje |
Opis |
---|---|
Help lub ? |
Wyświetla pomoc. |
U |
Zapisuje przekierowane dane wyjściowe konsoli jako Unicode.Ta opcja musi zostać określona jako pierwsza. |
@filename |
Określa nazwę pliku odpowiedzi, który zawiera jedno polecenie opcji w wierszu. Nie należy używać znaków cudzysłowu. |
OutputPath:path |
Określa katalog docelowy dla obrazu instrumentacji.Jeżeli nie określono ścieżki wyjściowej, nazwa oryginalnego pliku binarnego jest zmieniana przez dołączenie "Oryg" do nazwy pliku w tym samym katalogu, a kopia pliku binarnego jest instrumentowana. |
Exclude:funcspec |
Określa specyfikację funkcji do wykluczenia z instrumentacji poprzez badania.Jest to użyteczne, gdy profilowanie wstawienia testu w funkcji powoduje nieprzewidziane lub niepożądane wyniki. Nie należy używać opcji Exclude i Include, które odwołują się do funkcji w tym samym pliku binarnym. Można określić wiele specyfikacji funkcji z oddzielną opcją Exclude. funcspec jest zdefiniowany jako: nazw<separator1> [class<separator2> funkcji <separator1> jest :: dla kodu macierzystego i . kodu zarządzanego. <separator2> jest zawsze:: Exclude jest obsługiwane z pokryciem kodu. Symbol wieloznaczny * jest obsługiwany.Na przykład, aby wykluczyć wszystkie funkcje z przestrzeni nazw, użyj: MyNamespace::* Można użyć VSInstr /DumpFuncs, aby wyświetlić listę pełnych nazw funkcji w określonych danych binarnych. |
Include:funcspec |
Określa specyfikację funkcji w danych binarnych do instrumentacji z testami.Wszystkie inne funkcje w danych binarnych nie są instrumentowane. Można określić wiele specyfikacji funkcji z oddzielną opcją Include. Nie należy używać opcji Include i Exclude, które odwołują się do funkcji w tym samym pliku binarnym. Include nie jest obsługiwane z pokryciem kodu. funcspec jest zdefiniowany jako: nazw<separator1> [class<separator2> funkcji <separator1> jest :: dla kodu macierzystego i . kodu zarządzanego. <separator2> jest zawsze:: Symbol wieloznaczny * jest obsługiwany.Na przykład, aby załączyć wszystkie funkcje z przestrzeni nazw, użyj: MyNamespace::* Można użyć VSInstr /DumpFuncs, aby wyświetlić listę pełnych nazw funkcji w określonych danych binarnych. |
DumpFuncs |
Wyświetla listę funkcji w ramach określonego obrazu.Instrumentacja nie jest wykonywana. |
ExcludeSmallFuncs |
Wyklucza małe funkcje, które są krótkimi funkcjami nie wykonującymi żadnych wywołań funkcji, z instrumentacji.Opcja ExcludeSmallFuncs zapewnia dla mniejszego obciążenia instrumentacji, odpowiednio ulepszoną prędkość instrumentacji. Wykluczenie małych funkcji zmniejsza również rozmiar pliku .vsp oraz czas wymagany do analizy. |
Mark:{Before|After|Top|Bottom},funcname,markid |
Wstawia oznaczenie profilu (identyfikator używany do ograniczania danych w raportach), który można użyć do zidentyfikowania początku i końca zakresu danych w pliku raportu .vsp. Before- Niezwłocznie przed wpisem docelowej funkcji. After- Niezwłocznie po wyjściu docelowej funkcji. Top- Niezwłocznie po wpisie docelowej funkcji. Bottom- Niezwłocznie przed każdym zwrotem wartości docelowej funkcji. funcname - Nazwa funkcji docelowej Markid - Dodatnia liczba całkowita (long), używana jako identyfikator oznaczenia profilu. |
Coverage |
Wykonuje Instrumentację pokrycia.Może być używany tylko z następującymi opcjami: Verbose, OutputPath, Exclude i Logfile. |
Verbose |
Opcja Verbose służy do wyświetlania szczegółowych informacji na temat procesu instrumentacji. |
NoWarn[:[Message Number[;Message Number]]] |
Pomiń wszystkie lub określone ostrzeżenia. Message Number - numer ostrzeżenia.Jeśli Message Number jest pominięty, wszystkie ostrzeżenia są pomijane. Aby uzyskać więcej informacji, zobacz Ostrzeżenia VSInstr. |
Control:{Thread|Process|Global} |
Określa poziom profilowania następujących opcji zbierania danych VSInstr: Start StartOnly Suspend StopOnly SuspendOnly ResumeOnly Thread- określa funkcje sterowania zbieraniem danych na poziomie wątku.Profilowanie jest uruchomione lub zatrzymane tylko dla bieżącego wątku.Nie wpływa na stan profilowania innych wątków.Wartość domyślna to wątek. Process- określa funkcje sterowania zbieraniem profilowanych danych na poziomie procesu.Profilowanie jest uruchamiane lub zatrzymane dla wszystkich wątków w bieżącym procesie.Nie wpływa na stan profilowania innych procesów. Global- określa funkcje sterowania zbieraniem danych na poziomie globalnym (międzyprocesowe). Jeśli nie określisz poziomu profilowania, wystąpi błąd. |
Start:{Inside|Outside},funcname |
Ogranicza zbieranie danych do docelowej funkcji oraz funkcji podrzędnych wywołanych przez tę funkcję. Inside- Wstawia funkcję StartProfile niezwłocznie po wejściu do funkcji docelowej.Wstawia funkcję StopProfile niezwłocznie przed każdym zwróceniem wartości w funkcji docelowej. Outside- Wstawia funkcję StartProfile niezwłocznie przed każdym wywołaniem do funkcji docelowej.Wstawia funkcję StopProfile niezwłocznie po każdym wywołaniu do funkcji docelowej. funcname - nazwa funkcji docelowej. |
Suspend:{Inside|Outside},funcname |
Wyklucz zbieranie danych dla docelowej funkcji oraz funkcji podrzędnych wywołanych przez tę funkcję. Inside- Wstawia funkcję SuspendProfile niezwłocznie po wejściu do funkcji docelowej.Wstawia funkcję ResumeProfile niezwłocznie przed każdym zwróceniem wartości w funkcji docelowej. Outside- Wstawia funkcję SuspendProfile niezwłocznie przed wejściem do funkcji docelowej.Wstawia funkcję ResumeProfile niezwłocznie po wyjściu z funkcji docelowej. funcname - nazwa funkcji docelowej. Jeśli funkcja docelowa zawiera funkcję StartProfile, funkcja SuspendProfile dodaje się przed nią.Jeśli funkcja docelowa zawiera funkcję StopProfile, funkcja ResumeProfile dodaje się za nią. |
StartOnly:{Before|After|Top|Bottom},funcname |
Rozpoczyna zbieranie danych podczas przebiegu profilowania.Wstawia API funkcji StartProfile w określonej lokalizacji. Before- niezwłocznie przed wpisem docelowej funkcji. After- niezwłocznie po wyjściu docelowej funkcji. Top- niezwłocznie po wpisie docelowej funkcji. Bottom- niezwłocznie przed każdym zwrotem wartości docelowej funkcji. funcname - nazwa funkcji docelowej. |
StopOnly:{Before|After|Top|Bottom},funcname |
Wstrzymuje zbieranie danych podczas przebiegu profilowania.Wstawia API funkcji StopProfile w określonej lokalizacji. Before- niezwłocznie przed wpisem docelowej funkcji. After- niezwłocznie po wyjściu docelowej funkcji. Top- niezwłocznie po wpisie docelowej funkcji. Bottom- niezwłocznie przed każdym zwrotem wartości docelowej funkcji. funcname - nazwa funkcji docelowej. |
SuspendOnly:{Before|After|Top|Bottom},funcname |
Wstrzymuje zbieranie danych podczas przebiegu profilowania.Wstawia API SuspendProfile w określonej lokalizacji. Before- niezwłocznie przed wpisem docelowej funkcji. After- niezwłocznie po wyjściu docelowej funkcji. Top- niezwłocznie po wpisie docelowej funkcji. Bottom- niezwłocznie przed każdym zwrotem wartości docelowej funkcji. funcname - nazwa funkcji docelowej. Jeśli funkcja docelowa zawiera funkcję StartProfile, funkcja SuspendProfile dodaje się przed nią. |
ResumeOnly:{Before|After|Top|Bottom},funcname |
Rozpoczyna lub wznawia zbieranie danych podczas przebiegu profilowania. Zwykle jest używane do uruchomienia profilowania po tym, jak opcja SuspendOnly zatrzymała profilowanie.Wstawia API ResumeProfile w określonej lokalizacji. Before- niezwłocznie przed wpisem docelowej funkcji. After- niezwłocznie po wyjściu docelowej funkcji. Top- niezwłocznie po wpisie docelowej funkcji. Bottom- niezwłocznie przed każdym zwrotem wartości docelowej funkcji. funcname - nazwa funkcji docelowej. Jeśli funkcja docelowa zawiera funkcję StopProfile, funkcja ResumeProfile dodaje się za nią. |