VSInstr

Narzędzie VSInstr służy do instrumentowania plików binarnych. Jest wywoływany przy użyciu następującej składni:

VSInstr [/U] filename [/options]

W poniższej tabeli opisano opcje narzędzi VSInstr:

Opcje opis
Pomoc lub ? Wyświetla Pomoc.
U Zapisuje przekierowane dane wyjściowe konsoli jako Unicode. Musi być określona pierwsza opcja.
@filename Określa nazwę pliku odpowiedzi, który zawiera jedną opcję polecenia na wiersz. Nie używaj cudzysłowów.
Outputpath:path Określa katalog docelowy dla instrumentowanego obrazu. Jeśli ścieżka wyjściowa nie zostanie określona, nazwa oryginalnego pliku binarnego zostanie zmieniona, dołączając ciąg "Orig" do nazwy pliku w tym samym katalogu, a kopia pliku binarnego jest instrumentowana.
Wykluczyć:funcspec Określa specyfikację funkcji do wykluczenia z instrumentacji przez sondy. Jest to przydatne podczas profilowania wstawiania sondy w funkcji powoduje nieprzewidywalne lub niepożądane wyniki.

Nie używaj opcji Wykluczanie i Dołączanie , które odwołują się do funkcji w tym samym pliku binarnym.

Można określić wiele specyfikacji funkcji z oddzielnymi opcjami wykluczania .

funcspec element jest zdefiniowany jako:

[separator przestrzeni nazw1<>] [separator klas2><], funkcja

<separator1> jest :: przeznaczony dla kodu natywnego i . dla kodu zarządzanego.

<separator2> jest zawsze ::

Opcja Wyklucz jest obsługiwana z pokryciem kodu.

Symbol wieloznaczny * jest obsługiwany. Aby na przykład wykluczyć wszystkie funkcje w przestrzeni nazw, użyj:

Mynamespace::*

Możesz użyć vsInstr /DumpFuncs , aby wyświetlić listę pełnych nazw funkcji w określonym pliku binarnym.
Obejmują:funcspec Określa specyfikację funkcji w pliku binarnym do instrumentowania za pomocą sond. Wszystkie inne funkcje w plikach binarnych nie są instrumentowane.

Można określić wiele specyfikacji funkcji z oddzielnymi opcjami dołączania .

Nie używaj opcji Dołączanie i wykluczanie , które odwołują się do funkcji w tym samym pliku binarnym.

Funkcja Include nie jest obsługiwana w przypadku pokrycia kodu.

funcspec element jest zdefiniowany jako:

[separator przestrzeni nazw1<>] [separator klas2><], funkcja

<separator1> jest :: przeznaczony dla kodu natywnego i . dla kodu zarządzanego.

<separator2> jest zawsze ::

Symbol wieloznaczny * jest obsługiwany. Aby na przykład uwzględnić wszystkie funkcje w przestrzeni nazw, użyj:

Mynamespace::*

Możesz użyć vsInstr /DumpFuncs , aby wyświetlić listę pełnych nazw funkcji w określonym pliku binarnym.
DumpFuncs Wyświetla listę funkcji w ramach określonego obrazu. Nie jest wykonywana instrumentacja.
ExcludeSmallFuncs Wyklucza małe funkcje, które są krótkimi funkcjami, które nie wykonują żadnych wywołań funkcji z instrumentacji. Opcja ExcludeSmallFuncs zapewnia mniejsze obciążenie instrumentacji, co zwiększa szybkość instrumentacji.

Wykluczenie małych funkcji zmniejsza również liczbę funkcji .Rozmiar pliku vsp i czas wymagany do analizy.
Oznacz:{Przed||u dołu u góry}|,funcname,markid Wstawia znacznik profilu (identyfikator używany do rozdzielania danych w raportach), za pomocą którego można zidentyfikować początek lub koniec zakresu danych w pliku raportu vsp.

Przed — bezpośrednio przed wpisem funkcji docelowej.

Po — natychmiast po zakończeniu funkcji docelowej.

Top — natychmiast po wpisie funkcji docelowej.

Dolne — bezpośrednio przed każdym zwróceniem w funkcji docelowej.

funcname - Nazwa funkcji docelowej

Markid - Dodatnia liczba całkowita (długa) do użycia jako identyfikator znacznika profilu.
Zapotrzebowanie Wykonuje instrumentację pokrycia. Można go używać tylko z następującymi opcjami: Verbose, OutputPath, Exclude i Logfile.
Pełne Opcja Pełne służy do wyświetlania szczegółowych informacji na temat procesu instrumentacji.
NoWarn[:[Message Number[;Message Number]]] Pomijanie wszystkich lub określonych ostrzeżeń.

Message Number - numer ostrzeżenia. Jeśli Message Number zostanie pominięty, wszystkie ostrzeżenia zostaną pominięte.

Aby uzyskać więcej informacji, zobacz VSInstr Warnings (Ostrzeżenia programu VSInstr).
Control:{Thread | Process Global | } Określa poziom profilowania następującej kontrolki zbierania danych VSInstr:

Uruchom

StartOnly

Suspend

StopOnly

SuspendOnly

ResumeOnly

Thread — określa funkcje kontroli zbierania danych na poziomie wątku. Profilowanie jest uruchamiane lub zatrzymywane tylko dla bieżącego wątku. Nie ma to wpływu na stan profilowania innych wątków. Wartość domyślna to wątek.

Proces — określa funkcje sterowania zbieraniem danych na poziomie procesu. Profilowanie rozpoczyna się lub zatrzymuje dla wszystkich wątków w bieżącym procesie. Nie ma to wpływu na stan profilowania innych procesów.

Globalny — określa funkcje kontroli zbierania danych na poziomie globalnym (między procesami).

Jeśli nie określisz poziomu profilowania, wystąpi błąd.
Start:{Inside Outside | },funcname Ogranicza zbieranie danych do funkcji docelowej i funkcji podrzędnych wywoływanych przez tę funkcję.

Wewnątrz — wstawia funkcję StartProfile bezpośrednio po wpisie do funkcji docelowej. Wstawia funkcję StopProfile bezpośrednio przed każdym zwróceniem w funkcji docelowej.

Poza — wstawia funkcję StartProfile bezpośrednio przed każdym wywołaniem funkcji docelowej. Wstawia funkcję StopProfile bezpośrednio po każdym wywołaniu funkcji docelowej.

funcname - nazwa funkcji docelowej.
Wstrzymywanie:{Wewnątrz | na zewnątrz},funcname Wyklucza zbieranie danych dla funkcji docelowej i funkcji podrzędnych wywoływanych przez funkcję .

Wewnątrz — wstawia funkcję SuspendProfile bezpośrednio po wpisie do funkcji docelowej. Wstawia funkcję ResumeProfile bezpośrednio przed każdym zwróceniem w funkcji docelowej.

Poza — wstawia funkcję SuspendProfile bezpośrednio przed wejściem do funkcji docelowej. Wstawia funkcję ResumeProfile natychmiast po zakończeniu z funkcji docelowej.

funcname - nazwa funkcji docelowej.

Jeśli funkcja docelowa zawiera funkcję StartProfile, funkcja SuspendProfile zostanie wstawiona przed nią. Jeśli funkcja docelowa zawiera funkcję StopProfile, funkcja ResumeProfile zostanie wstawiona po niej.
StartOnly:{Przed | | od góry | do dołu},funcname Rozpoczyna zbieranie danych podczas przebiegu profilowania. Wstawia funkcję interfejsu API StartProfile w określonej lokalizacji.

Wcześniej — bezpośrednio przed wpisem funkcji docelowej.

Po — natychmiast po zakończeniu funkcji docelowej.

Top — natychmiast po wpisie funkcji docelowej.

Dolna — bezpośrednio przed każdym zwróceniem w funkcji docelowej.

funcname - nazwa funkcji docelowej.
StopOnly:{Przed||u dołu u|góry},funcname Zatrzymuje zbieranie danych podczas przebiegu profilowania. Wstawia funkcję StopProfile w określonej lokalizacji.

Wcześniej — bezpośrednio przed wpisem funkcji docelowej.

Po — natychmiast po zakończeniu funkcji docelowej.

Top — natychmiast po wpisie funkcji docelowej.

Dolna — bezpośrednio przed każdym zwróceniem w funkcji docelowej.

funcname - nazwa funkcji docelowej.
SuspendOnly:{Przed||u dołu u góry}|,funcname Zatrzymuje zbieranie danych podczas przebiegu profilowania. Wstawia interfejs API SuspendProfile w określonej lokalizacji.

Wcześniej — bezpośrednio przed wpisem funkcji docelowej.

Po — natychmiast po zakończeniu funkcji docelowej.

Top — natychmiast po wpisie funkcji docelowej.

Dolna — bezpośrednio przed każdym zwróceniem w funkcji docelowej.

funcname - nazwa funkcji docelowej.

Jeśli funkcja docelowa zawiera funkcję StartProfile, funkcja SuspendProfile zostanie wstawiona przed nią.
ResumeOnly:{Przed||u dołu u|góry},funcname Rozpoczyna lub wznawia zbieranie danych podczas przebiegu profilowania.

Zazwyczaj służy do rozpoczęcia profilowania po zatrzymaniu profilowania opcji SuspendOnly . Wstawia interfejs API ResumeProfile w określonej lokalizacji.

Wcześniej — bezpośrednio przed wpisem funkcji docelowej.

Po — natychmiast po zakończeniu funkcji docelowej.

Top — natychmiast po wpisie funkcji docelowej.

Dolna — bezpośrednio przed każdym zwróceniem w funkcji docelowej.

funcname - nazwa funkcji docelowej.

Jeśli funkcja docelowa zawiera funkcję StopProfile, funkcja ResumeProfile zostanie wstawiona po niej.

Zobacz też