Bagikan melalui


Contoh 9: Membuat file TMF

Perintah berikut mengarahkan Tracefmt untuk memformat dan menampilkan pesan jejak di Tracedrv.etl, log jejak yang dihasilkan oleh Tracedrv. TraceDrv, driver sampel yang dirancang untuk pelacakan perangkat lunak, tersedia di repositori sampel driver Windows di GitHub.

Perintah ini mencakup parameter -i , yang mengarahkan Tracefmt untuk membuat file TMF untuk Tracedrv.

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

Perintah menggunakan parameter -i untuk menunjukkan jalur yang sepenuhnya memenuhi syarat ke file gambar untuk Tracedrv, Tracedrv.sys, di WDK.

-i d:\tracedrv\tracedrv.sys

Ini menggunakan parameter -r untuk menunjukkan jalur yang sepenuhnya memenuhi syarat ke versi lengkap file simbol PDB untuk Tracedrv, Tracedrv.pdb. Perhatikan bahwa Anda menentukan jalur dengan parameter ini, tetapi bukan nama file. Tracefmt menemukan versi file simbol yang benar berdasarkan file gambar yang ditentukan oleh -i.

-r d:\tracedrv

Perintah menggunakan parameter -p untuk mengarahkan Tracefmt untuk menempatkan file TMF yang dibuatnya untuk Tracedrv di direktori d:\tracedrv\tmfs .

-p d:\tracedrv\tmfs

Perintah menggunakan parameter -o untuk mengarahkan Tracefmt untuk menempatkan file output pesan pelacakan yang diformat dalam file d:\tracedrv\tracedrv1.txt . Parameter ini juga menempatkan file ringkasan di direktori yang sama dengan nama file Tracedrv.txt.sum.

-o d:\tracedrv\tracedrv1.txt

Parameter -v meminta pesan terperinci (verbose).

Sebagai respons terhadap perintah ini, Tracefmt mencari dan menemukan file PDB untuk Tracedrv.sys di direktori d:\tracedrv. Ini mengekstrak instruksi pemformatan pesan jejak dari file PDB dan menyimpannya dalam file TMF, seperti yang ditunjukkan dalam pernyataan dengan huruf tebal pada output berikut. Nama file TMF adalah GUID pesan dari penyedia lacak di Tracedrv. Tracefmt juga membuat file kontrol pesan pelacakan (TMC) dan menempatkannya di direktori yang sama.

Setelah Tracefmt membuat file TMF, ia membaca file untuk menemukan instruksi pemformatan untuk pesan pelacakan di log jejak Tracedrv.etl. Ini dimulai dengan melihat dalam file Default.tmf dan menemukan file TMF yang dibuat oleh sistem di direktori d:\tracedrv\tmfs.

Sebelum memformat data, Tracefmt menampilkan data tentang log jejak. Data dimulai dengan pernyataan Logfile d:\tracedrv\tracedrv.etl .

Pernyataan akhir dalam output menunjukkan bahwa Tracefmt berhasil memformat 13 peristiwa dalam log jejak dan membuat file Tracedrv1.txt dan 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

Output utama dari eksekusi Tracefmt ini adalah Tracedrv.txt, file teks yang berisi versi pesan jejak yang diformat di Tracedrv.etl. Teks berikut menunjukkan konten 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)