Udostępnij przez


Przykład 9. Tworzenie pliku TMF

Następujące polecenie kieruje narzędzie Tracefmt do formatowania i wyświetlania komunikatów śledzenia w pliku Tracedrv.etl, dziennika śledzenia wygenerowanego przez tracedrv. TraceDrv, przykładowy sterownik, który został zaprojektowany do śledzenia oprogramowania, jest dostępny w repozytorium przykładów sterowników systemu Windows na GitHubie.

Polecenie zawiera parametr -i, który kieruje tracefmt do utworzenia pliku TMF dla tracedrv.

tracefmt d:\tracedrv\tracedrv.etl -i d:\tracedrv\tracedrv.sys -r d:\tracedrv 
-p d:\tracedrv\tmfs -o d:\tracedrv\tracedrv1.txt -v

Polecenie używa parametru -i, aby wskazać w pełni kwalifikowaną ścieżkę do pliku obrazu Tracedrv, Tracedrv.sys, w zestawie WDK.

-i d:\tracedrv\tracedrv.sys

Używa parametru -r, aby wskazać w pełni kwalifikowaną ścieżkę do pełnej wersji pliku symboli PDB dla tracedrv, Tracedrv.pdb. Zwróć uwagę, że należy określić ścieżkę z tym parametrem, ale nie nazwą pliku. Tracefmt znajduje poprawną wersję pliku symboli na podstawie pliku obrazu określonego przez -i.

-r d:\tracedrv

Polecenie używa parametru -p, aby skierować narzędzie Tracefmt do umieszczenia pliku TMF utworzonego dla tracedrv w d:\tracedrv\tmfs katalogu.

-p d:\tracedrv\tmfs

Polecenie używa parametru -o, aby skierować narzędzie Tracefmt do umieszczenia pliku wyjściowego sformatowanych komunikatów śledzenia w pliku d:\tracedrv\tracedrv1.txt. Ten parametr umieszcza również plik podsumowania w tym samym katalogu pod nazwą pliku Tracedrv.txt.sum.

-o d:\tracedrv\tracedrv1.txt

-v parametr żąda szczegółowych (pełnych) komunikatów.

W odpowiedzi na to polecenie narzędzie Tracefmt wyszukuje i znajduje plik PDB dla Tracedrv.sys w katalogu d:\tracedrv. Wyodrębnia instrukcje formatowania komunikatów śledzenia z pliku PDB i zapisuje je w pliku TMF, jak pokazano pogrubioną czcionką w poniższym wyniku. Nazwa pliku TMF to identyfikator GUID komunikatu dostawcy śledzenia w systemie Tracedrv. Program Tracefmt również tworzy plik kontroli komunikatów śledzenia (TMC) i umieszcza go w tym samym katalogu.

Po utworzeniu pliku TMF narzędzie Tracefmt odczytuje plik w celu znalezienia instrukcji formatowania komunikatów śledzenia w dzienniku śledzenia Tracedrv.etl. Zaczyna od przeszukiwania pliku Default.tmf i odnajduje plik TMf, który został utworzony w katalogu d:\tracedrv\tmfs.

Przed sformatowanie danych narzędzie Tracefmt wyświetla dane dotyczące dziennika śledzenia. Dane zaczynają się od instrukcji Logfile d:\tracedrv\tracedrv.etl.

Końcowe instrukcje w danych wyjściowych pokazują, że narzędzie Tracefmt pomyślnie sformatowało 13 zdarzeń w dzienniku śledzenia i utworzyło pliki Tracedrv1.txt i Tracedrv1.txt.sum.

Setting log file to: d:\tracedrv\tracedrv.etl

Searching for matching PDB to d:\tracedrv\tracedrv.sys
Current Symbol Search Path = d:\tracedrv

Extracting TMF files out of found PDB files
DBGHELP: d:\tracedrv\tracedrv.pdb - OK
tracefmt : info BNP0000: WPPFMT generating d:\tracedrv\tmfs\1606d1a7-1682-57d1-65f7-36693800e096.tmf for d:\tracedrv\tracedrv.pdb
tracefmt : info BNP0000: WPPFMT generating d:\tracedrv\tmfs\d58c126f-b309-11d1-969e-0000f875a5bc.tmc for d:\tracedrv\tracedrv.pdb
Examining C:\WinDDK\5066\tools\tracing\i386\default.tmf for message formats,  3 found.
Searching for TMF files on path: d:\tracedrv\tmfs
Logfile d:\tracedrv\tracedrv.etl:
        OS version              5.1.2600  (Currently running on 5.1.2600)
        Start Time              2005-06-10-14:25:30.827
        End Time                2005-06-10-14:26:14.371
        Timezone is             Pacific Standard Time (Bias is 480mins)
        BufferSize              8192 B
        Maximum File Size       0 MB
        Buffers  Written        2
        Logger Mode Settings    (0) Logfile Mode is not set
        ProcessorCount          1
06/10/2005-21:25:45.539 ::        1: Filled=     696, Lost=  0 TotalLost= 0

Processing completed   Buffers: 1, Events: 13, EventsLost: 0 :: Format Errors: 0, Unknowns: 0

Event traces dumped to d:\tracedrv\tracedrv1.txt
Event Summary dumped to d:\tracedrv\tracedrv1.txt.sum

Głównym wynikiem tego uruchomienia narzędzia Tracefmt jest plik tekstowy Tracedrv.txt, zawierający sformatowaną wersję komunikatów śledzenia w pliku Tracedrv.etl. Poniższy tekst przedstawia zawartość Tracedrv.txt .

EventTrace
[0]0338.0E40::06/10/2005-14:25:43.968 [tracedrv]IOCTL = 1
[0]0338.0E40::06/10/2005-14:25:43.968 [tracedrv]Hello, 1 Hi
[0]0338.0E40::06/10/2005-14:25:43.968 [tracedrv]Hello, 2 Hi
[0]0338.0E40::06/10/2005-14:25:43.968 [tracedrv]Hello, 3 Hi
[0]0338.0E40::06/10/2005-14:25:43.968 [tracedrv]Machine State :: Offline
[0]0338.0E40::06/10/2005-14:25:43.968 [tracedrv]Function Return=0x8000000f(STATUS_DEVICE_POWERED_OFF)
[0]0338.0E40::06/10/2005-14:25:45.539 [tracedrv]IOCTL = 2
[0]0338.0E40::06/10/2005-14:25:45.539 [tracedrv]Hello, 1 Hi
[0]0338.0E40::06/10/2005-14:25:45.539 [tracedrv]Hello, 2 Hi
[0]0338.0E40::06/10/2005-14:25:45.539 [tracedrv]Hello, 3 Hi
[0]0338.0E40::06/10/2005-14:25:45.539 [tracedrv]Machine State :: Offline
[0]0338.0E40::06/10/2005-14:25:45.539 [tracedrv]Function Return=0x8000000f(STATUS_DEVICE_POWERED_OFF)