Aracılığıyla paylaş


Örnek 9: TMF dosyası oluşturma

Aşağıdaki komut Tracefmt'i Tracedrv tarafından oluşturulan izleme günlüğü Tracedrv.etl dosyasındaki izleme iletilerini biçimlendirmeye ve görüntülemeye yönlendirir. Yazılım izleme için tasarlanmış örnek bir sürücü olan TraceDrv, GitHub'daki Windows sürücü örnekleri deposunda bulunur.

komutu, Tracefmt'i Tracedrv için bir TMF dosyası oluşturmaya yönlendiren -i parametresini içerir.

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

Komut, WDK'de Tracedrv, Tracedrv.sysiçin görüntü dosyasının tam yolunu belirtmek için -i parametresini kullanır.

-i d:\tracedrv\tracedrv.sys

Tracedrv, Tracedrv.pdb için PDB sembol dosyasının tam sürümünün tam yolunu belirtmek için -r parametresini kullanır. Bu parametreye sahip bir yol belirttiğinize, ancak dosya adı belirtmediğinize dikkat edin. Tracefmt, -i tarafından belirtilen görüntü dosyasını temel alarak sembol dosyasının doğru sürümünü bulur.

-r d:\tracedrv

Komut, Tracedrv için oluşturduğu TMF dosyasını d:\tracedrv\tmfs dizinine yerleştirmek üzere Tracefmt'i yönlendirmek için -p parametresini kullanır.

-p d:\tracedrv\tmfs

komutu, biçimlendirilmiş izleme iletilerinin çıkış dosyasını d:\tracedrv\tracedrv1.txt dosyasına yerleştirmek üzere Tracefmt'i yönlendirmek için -o parametresini kullanır. Bu parametre ayrıca özet dosyasını Tracedrv.txt.sum dosya adıyla aynı dizine yerleştirir.

-o d:\tracedrv\tracedrv1.txt

-v parametresi ayrıntılı (ayrıntılı) iletiler ister.

Bu komuta yanıt olarak Tracefmt, d:\tracedrv dizinindeki Tracedrv.sys için PDB dosyasını arar ve bulur. PDB dosyasından izleme iletisi biçimlendirme yönergelerini ayıklar ve izleyen çıktıdaki kalın yazı tipindeki deyiminde gösterildiği gibi bunları bir TMF dosyasında depolar. TMF dosyasının adı, Tracedrv'deki izleme sağlayıcısının GUID ileti'sidir. Tracefmt ayrıca bir izleme iletisi denetimi (TMC) dosyası oluşturur ve aynı dizine yerleştirir.

Tracefmt TMF dosyasını oluşturduğunda, Tracedrv.etl izleme günlüğündeki izleme iletileri için biçimlendirme yönergelerini bulmak için dosyayı okur. Default.tmf dosyasına bakarak başlar ve d:\tracedrv\tmfs dizininde oluşturduğu TMf dosyasını bulur.

Tracefmt, verileri biçimlendirmeden önce izleme günlüğü hakkındaki verileri görüntüler. Veriler Logfile d:\tracedrv\tracedrv.etl deyimiyle başlar.

Çıktıdaki son deyimler Tracefmt'in izleme günlüğündeki 13 olayı başarıyla biçimlendirdiğini ve Tracedrv1.txt ve Tracedrv1.txt.sum dosyalarını oluşturduğunu gösterir.

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

Bu Tracefmt çalıştırmasının birincil çıktısı, Tracedrv.etl dosyasındaki izleme iletilerinin biçimlendirilmiş sürümünü içeren bir metin dosyası Tracedrv.txt. Aşağıdaki metin Tracedrv.txt içeriğini gösterir.

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)