Condividi tramite


Esempio 9: Creazione di un file TMF

Il comando seguente indica a Tracefmt di formattare e visualizzare i messaggi di traccia in Tracedrv.etl, un log di traccia generato da Tracedrv. TraceDrv, un driver di esempio progettato per la traccia software, è disponibile nel repository degli esempi di driver di Windows in GitHub.

Il comando include il parametro -i , che indirizza Tracefmt a creare un file TMF per Tracedrv.

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

Il comando usa il parametro -i per indicare il percorso completo del file di immagine per Tracedrv, Tracedrv.sys, in WDK.

-i d:\tracedrv\tracedrv.sys

Usa il parametro -r per indicare il percorso completo della versione completa del file di simboli PDB per Tracedrv, Tracedrv.pdb. Si noti che si specifica un percorso con questo parametro, ma non un nome di file. Tracefmt trova la versione corretta del file di simboli in base al file di immagine specificato da -i.

-r d:\tracedrv

Il comando usa il parametro -p per indirizzare Tracefmt per inserire il file TMF creato per Tracedrv nella directory d:\tracedrv\tmfs .

-p d:\tracedrv\tmfs

Il comando usa il parametro -o per indirizzare Tracefmt a posizionare il file di output dei messaggi di traccia formattati nel file d:\tracedrv\tracedrv1.txt . Questo parametro inserisce anche il file di riepilogo nella stessa directory con il nome file Tracedrv.txt.sum.

-o d:\tracedrv\tracedrv1.txt

Il parametro -v richiede messaggi dettagliati (verbosi).

In risposta a questo comando, Tracefmt cerca e trova il file PDB per Tracedrv.sys nella directory d:\tracedrv. Estrae le istruzioni di formattazione dei messaggi di traccia dal file PDB e le archivia in un file TMF, come illustrato nell'istruzione in grassetto nell'output seguente. Il nome del file TMF è il GUID del messaggio del provider di traccia di Tracedrv. Tracefmt crea anche un file di controllo messaggi di traccia (TMC) e lo inserisce nella stessa directory.

Dopo che Tracefmt ha creato il file TMF, legge il file per trovare le istruzioni di formattazione per i messaggi di traccia nel log di traccia Tracedrv.etl. Inizia cercando nel file Default.tmf e trova il file TMf creato nella directory d:\tracedrv\tmfs.

Prima di formattare i dati, Tracefmt visualizza i dati relativi al log di traccia. I dati iniziano con l'istruzione Logfile d:\tracedrv\tracedrv.etl .

Le affermazioni finali nell'output mostrano che Tracefmt ha formattato correttamente i 13 eventi nel log di traccia e creato i file Tracedrv1.txt e 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

L'output principale di questa esecuzione Tracefmt è Tracedrv.txt, un file di testo contenente la versione formattata dei messaggi di traccia in Tracedrv.etl. Il testo seguente mostra il contenuto di 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)