共用方式為


Tracelog 命令語法

Tracelog 具有啟動、停止和控制追蹤會話命令(或動作)。

注意

若要控制追蹤會話,您必須是計算機上的效能記錄使用者群組或系統管理員群組的成員(以系統管理員身分執行)。

    tracelog [actions] [options] | [-h | -help | -?] 

參數

如需 Tracelog 參數的相關信息,請參閱 [actions] [options]。

[actions]

-addautologger [LoggerName]
設定自動記錄程式工作階段的登錄專案。 自動記錄程式會話是在系統開機期間追蹤驅動程式或其他追蹤提供者活動的慣用方法。 您必須使用 -sessionguid 選項來指定會話 GUIDtracelog -addautologger 命令會採用與 Tracelog -start 命令相同的選項

-capturestate [LoggerName]
要求所有啟用 LoggerName 的提供者來記錄狀態資訊。 啟用關鍵詞有助於判斷所記錄的資訊種類。

-disable [LoggerName]
停用指定的追蹤提供者。 停用提供者時,它會繼續執行,但會停止產生追蹤訊息。

tracelog -stop 命令會在停止會話之前停用追蹤提供者。 在停止追蹤會話之前,您不需要停用提供者。 不過,您可以使用 tracelog -disable 命令來停用選取的提供者,而不停止追蹤會話。

停用會停止追蹤提供者將追蹤訊息傳送至追蹤會話緩衝區,但不會排清緩衝區或停止追蹤會話。 使用 tracelog -flush 命令來排清緩衝區,並使用 tracelog -stop 或 tracelog -x (stop all) 命令來停止追蹤會話。

Tracelog 使用 EnableTrace 函 式來實 作 tracelog -disable 命令。 如需此函式的詳細資訊,請參閱 Microsoft Windows SDK 檔。

-enable [LoggerName]
啟用 LoggerName 追蹤工作階段的一或多個追蹤提供者。

當您啟用提供者時,提供者會產生追蹤訊息,並將其傳送至追蹤會話的緩衝區。 如果您啟用提供者時未執行(或未載入),系統 會預先註冊 提供者,也就是說,它會為 ETW 註冊資料庫中的提供者保留空間,並儲存 enable 命令。 當提供者啟動並實際註冊時,它會收到儲存的 enable 命令,並開始將追蹤訊息傳送至會話。

tracelog -start 命令會啟用 tracelog -start 命令中選擇性 -guid 參數所指定的任何提供者。 您不需要提交個別 的 tracelog -enable 命令。

您可以使用 tracelog -enable 命令,將提供者新增至執行中的追蹤會話、變更提供者的旗標和層級,或是使用 tracelog -disable 命令重新啟用您停用的提供者。

使用 tracelog -enable 命令時,請先提交 tracelog -start 命令以啟動追蹤會話,然後提交 tracelog -enable 命令以啟用提供者。

您可以重複啟用執行中的提供者,而不停用它。 (您可以這麼做來變更旗標和層級。

您使用 -flag 和 -level 參數指定的追蹤旗標追蹤層級會傳遞至 -guid 參數所代表的所有追蹤提供者。 若要為每個追蹤提供者指定不同的旗標和層級,請使用自己的旗標和層級設定,為每個提供者提交個別 的 tracelog -enable 命令。

如果您在全域記錄器追蹤會話執行時啟用任何NT核心記錄器旗標(例如 -noprocess-nothread-fio-cm),則全域記錄器會話會轉換成NT核心記錄器追蹤會話。 這項功能的設計目的是在開機過程中追蹤核心事件。

-enableex [LoggerName]
-enable 相同。 此選項可能會在未來的 Tracelog 版本中移除。

-enumguid
列舉向 Windows 事件追蹤註冊之系統上的提供者(或列表)。 如需 Enumguid 顯示的描述,請參閱 Tracelog Enumguid Display

Tracelog 會使用 EnumerateTraceGuids 函 式來實 作 tracelog -enumguid 命令。 如需此函式的詳細資訊,請參閱 Microsoft Windows SDK 檔。

-enumguidex [#guid]
列舉向 Windows 事件追蹤註冊之系統上的提供者(或列表)。 如需 EnumguidEx 顯示的描述,請參閱 Tracelog Enumguid Display

Tracelog 會使用 EnumerateTraceGuidsEx 函式來實 作 tracelog -enumguidex 命令。 如需此函式的詳細資訊,請參閱 Microsoft Windows SDK 檔。

-flush [LoggerName]
清除 LoggerName 追蹤會話的作用中緩衝區。 如果未指定LoggerName,Tracelog會排清NT Kernel Logger 追蹤會話緩衝區。

這個強制排清除了當追蹤訊息緩衝區已滿且追蹤會話停止時自動發生的排清,以及排清定時器所啟動的排清之外,也會自動進行。

當您排清追蹤會話的緩衝區時,緩衝區中的事件會立即傳遞至追蹤記錄或追蹤取用者。

排清不會停用追蹤提供者或重新導向追蹤訊息。 清除緩衝區之後,追蹤提供者會繼續將事件寫入緩衝區。

Tracelog 會使用 FlushTrace 函式來實 作 tracelog -flush 命令。 如需此函式的詳細資訊,請參閱 Microsoft Windows SDK 檔。

您可以使用 tracelog -flush 命令搭配 -f Logfile 選項,將目前緩衝區中的追蹤訊息排清到指定的 追蹤記錄 檔 (.etl) 檔案。 此參數僅適用於緩衝追蹤會話(-buffering):對於其他追蹤會話類型, 則會忽略 -f 參數。

此排清只會影響緩衝區的目前內容。 它不會將未來的追蹤訊息重新導向至追蹤記錄。

-l [-lp]
列出電腦上執行之所有追蹤會話的屬性。

如果您傳遞 -lp 選項,Tracelog 也會列出每個會話啟用的所有提供者。

-q [LoggerName] [-lp]
列出指定之追蹤會話的屬性(查詢)。 如果您未指定 LoggerName,Tracelog查詢 NT 核心記錄器追蹤會話

如果您傳遞 -lp 選項,Tracelog 也會列出已啟用會話的所有提供者。

-remove GlobalLogger
拿掉並重新初始化全域記錄器追蹤會話的登錄值。 它會將 Start 專案的值設定為 0(不要啟動),並刪除其他登錄專案。 tracelog -remove 命令僅適用於全域記錄器追蹤會話。 所有其他工作階段名稱值都無效。

不需要 tracelog -remove 命令。 不過,如果您未將 [開始] 專案的值設定為0,則每次重新啟動系統時都會啟動全域記錄器會話。

如果您未使用 tracelog -remove 命令,則來自上一會話的選項仍在登錄中,除非您針對相同選項提交具有不同值的 tracelog -start 命令,否則它們會用於新會話。

-start [LoggerName]
使用 您選取的LoggerName 來啟動追蹤會話,以代表追蹤會話。

使用 GlobalLogger 作為 LoggerName 來指定全域記錄器追蹤會話 當您重新啟動計算機時,會話就會啟動。

LoggerName 可以是任何符合 Windows 命名指導方針的名稱,最多 1,024 個字元。 如果名稱包含空格,請以引號括住名稱。 Tracelog 不區分大小寫。

預設值為 “NT Kernel Logger”。 如果您省略此參數,Tracelog 會啟動 NT Kernel Logger 追蹤會話 ,如果您使用 -guid 參數來指定不同的追蹤提供者,則會宣告錯誤。

-stop [LoggerName]
停用指定追蹤會話中的提供者,然後終止會話。

tracelog -stop 命令會停用追蹤提供者,並停止追蹤會話。 tracelog -disable 命令只會停用追蹤提供者。

如果您啟動 追踪核心事件的開機時間全局記錄器會話 ,您必須使用 命令 tracelog -stop “NT Kernel Logger”tracelog -stop GlobalLogger 來停止它。 當您使用任一 個命令來停止全域記錄器追蹤會話追蹤會話 時,Tracelog 會停止提供者,但不會重設登錄專案的值。 若要重設全域記錄器登錄專案的值,請使用 tracelog -remove

-systemrundown [LoggerName]
要求 SystemTraceProvider 記錄指向 LoggerName 工作階段的取消事件。 如需啟動追蹤會話的相關信息,請參閱 設定和啟動SystemTraceProvider 會話

此命令僅適用於 Windows 8 和更新版本的 Windows。

-超時 價值
指定使用 tracelog -enable 命令啟用提供者時所要使用的逾時值,以毫秒為單位(ms)。 默認逾時為 0。

如果逾時值為 0,Tracelog 會呼叫每個提供者的啟用回呼並立即傳回,而不會等待回呼完成。

若要同步啟用提供者,請指定逾時值。 如果您指定逾時值,Tracelog 會等到每個提供者的啟用回呼結束或逾時到期為止。

一次啟用多個提供者時,會循序將逾時套用至每個提供者。

-update [LoggerName]
tracelog -update 命令會在執行時變更追蹤會話的屬性。

在 tracelog -update 命令中,-guid 參數只有在更新私人追蹤會話 (-um) 時才有效。若要在執行會話時從標準追蹤會話新增或移除提供者,請使用 tracelog -enabletracelog -disable 命令。

如果您啟動追蹤記錄會話 (-f),您可以更新為即時會話 (-rt),但除了追蹤取用者之外,訊息仍會繼續傳送至追蹤記錄。 您無法藉由更新來排除會話中的記錄。 不過,您必須先使用 tracelog -flush 命令排清緩衝區,才能將即時訊息傳遞新增至追蹤記錄會話。

如果您啟動即時會話 (-rt),然後更新至追蹤記錄會話 (-f),新的追蹤訊息就不會再直接傳送至追蹤取用者;它們只會傳送至追蹤記錄檔。 若要將追蹤記錄新增至即時追蹤會話,請在 tracelog -update 命令中使用 -rt-f。 您必須先使用 tracelog -flush 命令排清緩衝區,才能將即時訊息傳遞新增至追蹤記錄會話。

您無法更新 全域記錄器追蹤工作階段

針對私人(使用者模式)追蹤會話,您只能更新記錄檔名稱 (-f) 和排清定時器值 (-ft)。

若要更新旗標和層級,請使用 tracelog -enable 命令,以新的旗標或層級重新啟用提供者。

Tracelog 會使用 ControlTrace 函式來實 作 tracelog -update 命令。 如需此函式的詳細資訊,請參閱 Microsoft Windows SDK 檔。

[options]

-addtotriagedump

注意

除非您可能需要使用調試程式從核心傾印檢視事件,否則不應該使用此選項。

指定會話的任何使用中緩衝區都可以新增至分級記憶體轉儲。 分級傾印的大小會受到限制,而且如果會話的緩衝區導致傾印超過其大小上限,則會將緩衝區排除在外。

-附加
將追蹤訊息附加至 -f 參數所指定的事件追蹤記錄檔 (.etl) 檔案。 預設值是建立新的檔案。

此參數只有在包含 -f 且不包含 -rt-cir 的命令中才有效。

-b BufferSize
指定針對追蹤會話配置之每個緩衝區的大小,以 KB 為單位。 默認值取決於處理器數目、物理記憶體數量和使用中的操作系統。

-bt n
指定要填滿的緩衝區數目,再開始排清它們。 此選項可從 Windows 8.1 開始提供。

-緩衝
啟動緩衝追蹤會話。

在緩衝追蹤會話中,追蹤訊息會保留在追蹤緩衝區中。 它們不會傳送至追蹤取用者或記錄在追蹤記錄檔中。

-cir MaxFileSize
在事件追蹤記錄檔 (.etl) 檔案中指定循環記錄 (在檔尾時,將新訊息記錄在最舊的訊息上)。 MaxFileSize 會以 MB 指定檔案的大小上限。 如果沒有 MaxFileSize 值,則會忽略此參數。

默認值為循序記錄,沒有檔案大小限制。

-釐米
啟用登錄 (Configuration Manager) 存取的追蹤。 此參數僅適用於NT核心記錄器追蹤會話。

-critsec
追蹤私人追蹤會話中進程的重要區段事件。 您可以在任何使用者模式處理程序上啟動重要區段進程記錄器,即使是未檢測追蹤的程式也一樣。

使用 -pids 來指定進程。 請勿搭配 -critsec 使用 -guid。 系統會定義重要區段追蹤的自定義 GUID (CritSecGuid)。 您無法 在相同的命令中使用 -heap-critsec

-dpcisr
啟用追蹤延遲過程調用 (DPC)、中斷服務要求 (ISR)、映射載入事件 (-img) 和核心中的內容切換。 此參數僅適用於NT核心記錄器追蹤會話。

只有 Windows Driver Kit for Windows Vista 和更新版本的 WDK 隨附的 Tracelog 版本才支援此選項。 -dpcisr 選項不能與 -eflag 選項搭配使用。

搭配 -dpcisr 使用 -UsePerfCounter 參數。 這個參數會為每個事件提供唯一的時間戳,而 Tracerpt 是用來格式化和解譯 DPC/ISR 事件的工具。 如需解譯和格式化這些事件的相關信息,請參閱下方的。

-eflag n [flag...]
使用NT核心記錄器追蹤會話的其他旗標啟用核心事件,尤其是旗標,以啟用 DPC、ISR 和內容切換事件的追蹤。 -eflag 選項不能與 –dpcisr 選項搭配使用。

-enableproperty n
如需描述和支援的值,請參閱 EnableParameters 結構中 EnabledProperties 的描述,以做為參數傳遞至 EnableTraceEx2

-EventIdFilter {-in-out|} **** n **** id1 id2 ...
指定具有 n 個事件識別碼的事件識別碼篩選條件(最多允許 64 個事件識別子)。 此選項可從 Windows 8.1 開始提供。

-ExeFilter Executable_file [; Executable_file ...]
指定要篩選的可執行檔名稱。 您可以指定檔案清單。 使用分號分隔檔案的名稱。 未列出的檔案會排除。 此選項可從 Windows 8.1 開始提供。

-f [LogFile]
啟動追蹤記錄會話。 LogFile 會指定事件追蹤記錄檔 (.etl) 檔案的路徑(選擇性)和檔名。 默認值為 C:\LogFile.etl。 若要將檔案放在遠端電腦上,請在路徑中包含計算機名稱或IP位址。

如果您使用 -rt 搭配 -f,追蹤訊息會傳送至取用者和事件追蹤記錄檔。 您無法搭配 -buffering 使用 -rt-f

-fio
啟用檔案 I/O 事件的追蹤。 此參數僅適用於NT核心記錄器追蹤會話。

-旗

注意

關鍵詞已取代旗標。 除非您啟用 WPP 提供者,否則請使用 -matchanykw

指定追蹤會話中提供者的追蹤旗標。 旗標值會決定追蹤提供者產生的事件。

旗標 代表以十進位或十六進位格式在追蹤提供者中定義的旗標值。 預設值為 0。 從0x01000000到0xFF000000的值會保留供日後使用。

旗標值的意義是由每個追蹤提供者獨立定義。 一般而言,旗標代表越來越詳細的報告層級。

tracelog -start 命令中指定的旗標值會套用至追蹤會話中的所有追蹤提供者。 若要為每個追蹤提供者設定不同的旗標,請使用 tracelog -enable

-英尺 FlushTime
指定排清追蹤訊息緩衝區的頻率,以秒為單位。 排清時間下限為1秒。 預設值為 0(沒有強制排清)。

這個強制排清除了當追蹤訊息緩衝區已滿,以及追蹤會話停止時自動發生的排清。

請參閱 tracelog -flush 命令

-guid {#GUID | file | *name}
啟用指定的追蹤提供者。

如果指定了檔案,Tracelog 將會針對檔案中指定的所有提供者啟用追蹤。 檔案的格式必須如下:

; comment line
guid1;matchanykeyword;level
guid2;matchanykeyword;level

如果指定提供者 GUID,則 GUID 必須以數位符號 (#) 前置。

如果指定提供者名稱,則必須以星號 (*) 前置名稱。 名稱接著會使用與 相同的演算法轉換成 GUID。NET 的事件來源。 此 GUID 接著會用來啟用提供者。

如果您省略此參數,則沒有任何追蹤提供者會將訊息傳送至追蹤會話。 不過,啟動追蹤會話之後,您可以使用 tracelog -enable 命令來啟用會話的一或多個追蹤提供者。

-gs
為每個追蹤訊息產生全域序號。

計算機上的所有追蹤會話都是唯一的全域序號。 根據預設,沒有序號。

此參數在NT核心記錄器追蹤會話中無效。

-堆
追蹤使用者模式進程的堆積記憶體事件。 您可以在任何使用者模式進程上啟動堆積進程記錄器,即使是未檢測追蹤的程式也一樣。

使用 -pids 來指定進程。 請勿將 -guid 與 -heap 搭配使用。 系統會定義堆積記憶體追蹤的自定義 GUID (HeapGuid)。 您無法 在相同的命令中使用 -heap-critsec

-高頻
啟用硬式頁面錯誤追蹤(需要磁碟存取才能解決的頁面錯誤)。 此參數僅適用於NT核心記錄器追蹤會話。

-hybridshutdown {stop|persist}
控制混合式關機記錄器行為。 此選項可從 Windows 8 開始使用。

stop 會導致當系統執行混合式關機時停止會話。 persist 會導致會話在系統從混合式關機再次啟動之後繼續。

-img
啟用影像載入事件的追蹤。 此參數僅適用於NT核心記錄器追蹤會話。

-獨立

注意

應該在每個追蹤會話上啟用獨立模式。

啟用追蹤會話上的獨立模式。 獨立模式可讓會話收集其他非獨立模式會話已卸除的事件。 此選項可從 Windows 8.1 開始提供。

-kb
使用 KB 表示記錄檔大小。 預設值為 MB(MB)。

-kd
將追蹤訊息重新導向至 KD 或 Windbg,無論附加哪一個。 此參數也會將追蹤緩衝區大小設定為 3 KB、調試程式的緩衝區大小上限,並忽略 命令中的任何 -b 參數。

當您使用 -kd 提交 Tracelog 命令時,調試程式必須執行。 否則,Tracelog 會停止回應。

如需在核心調試程式中顯示追蹤訊息的相關信息,請參閱批注。

-Lbr *EventName[**+EventName+...]:Filter[,*Filter,...]
在核心事件上設定LBR追蹤。

針對核心事件清單使用 -eflag Help

-水準 n
指定 追蹤會話中提供者的追蹤層級 。 層級會決定追蹤提供者產生的事件。

Level 代表十進位或十六進位格式的層級值。 預設值為 0。

層級值的意義是由每個追蹤提供者獨立定義。 一般而言,追蹤層級代表事件的嚴重性(資訊、警告或錯誤)。

tracelog -start 命令中指定的層級值會套用至追蹤會話中的所有追蹤提供者。 若要為每個追蹤提供者設定不同的層級,請使用 tracelog -enable

-lowcapacity

注意

除非需要降低記憶體成本,否則不應使用此選項。 使用此選項會使每個事件記錄的速度變慢。

一次使用單一緩衝區來收集在多個處理器上產生的事件。 此選項會選取EVENT_TRACE_NO_PER_PROCESSOR_BUFFERING記錄模式。 如需詳細資訊,請參閱 Windows SDK。

-ls
為每個追蹤訊息產生本機序號。

本機序號在追蹤會話內是唯一的。 根據預設,沒有序號。

此參數在NT核心記錄器追蹤會話中無效。

-麥克斯 NumberOfBuffers
指定 Tracelog 為追蹤工作階段配置的緩衝區數目上限。 默認值取決於處理器數目、物理記憶體數量和使用中的操作系統。

-matchallkw n
指定 MatchAllKeyWord 位掩碼,以限制提供者寫入的事件類別,並搭配 -matchanykw 選項使用。

此位掩碼是選擇性的。 如果事件的 關鍵詞符合 -matchanykw 選項中指定的條件,則提供者只有在此遮罩中的所有位都存在於事件的 關鍵詞中時,提供者才會寫入事件。 如果 -matchanykw 為零,則不會使用此遮罩。

Tracelog 會在 EnableTraceEx2 函數調用的 MatchAllKeyWord 參數中傳遞 n。 如需詳細資訊,請參閱 Windows SDK。

-matchanykw n
指定 MatchAnyKeyword 位掩碼,以決定提供者寫入的事件類別。

如果事件的任何關鍵詞位符合此遮罩中設定的任何位,提供者會寫入事件。 Tracelog 會在 EnableTraceEx2 函數調用的 MatchAnyKeyWord 參數中傳遞 n。 如需詳細資訊,請參閱 Windows SDK。

-min NumberOfBuffers
指定最初配置用於儲存追蹤訊息的緩衝區數目。 當緩衝區已滿時,Tracelog 會配置更多緩衝區,直到達到最大值為止。 默認值取決於處理器數目、物理記憶體數量和使用中的操作系統。

-newfile MaxFileSize
每當現有檔案到達 MaxFileSize 時,就會建立新的事件追蹤記錄檔 (.etl) 檔案。 MaxFileSize 會以 MB 指定每個記錄檔的大小上限。 如果沒有 MaxFileSize 值,則會忽略此參數。

使用 -newfile 時,您也必須使用 -f LogFile 參數,而 LogFile 的值必須是包含字元 %d 以指出十進位模式的名稱,例如 trace%d.etl。 否則,命令會失敗並出現ERROR_INVALID_NAME。 Windows 會在每次建立新檔案時,遞增檔名中的十進位值。

這個參數在預先配置(-prealloc)、循環記錄(-cir)、NT 核心記錄器會話或私人追蹤會話中無效。

-nodisk
停用實體磁碟 I/O 事件的追蹤。 此參數僅適用於NT核心記錄器追蹤會話。

-nonet
停用 TCP/IP 和用戶數據報通訊協定 (UDP) 事件的追蹤。 此參數僅適用於NT核心記錄器追蹤會話。

-noprocess
停用每個進程的開始和結束追蹤。 此參數僅適用於NT核心記錄器追蹤會話。

-nothread
停用每個線程的開始和結束追蹤。 此參數僅適用於NT核心記錄器追蹤會話。

-呼
針對追蹤訊息緩衝區使用可分頁記憶體。 根據預設,事件追蹤會針對緩衝區使用不可分頁的記憶體。

需要不可分頁記憶體的提供者將無法將事件記錄到使用可分頁記憶體的會話。

-pids #PIDs PID [PID...]
指定堆積記憶體或重要區段追蹤會話執行的使用者模式進程。 僅適用於 -heap-critsec

#PIDs 指定以此參數列出的進程標識子數目。 PID 代表進程識別碼。 您可以使用此參數指定最多十個 PID。

當提供者在多個進程中執行時列出多個 PID,例如當單一程式建立多個進程時。

-PidFilter n pid1 pid2 ...
指定具有 n Pids 的 Pid 篩選條件(最多允許 8 個)。 此選項可從 Windows 8.1 開始提供。

-pf
啟用所有頁面錯誤的追蹤。 此參數僅適用於NT核心記錄器追蹤會話。

-PkgIdFilter 套件完整名稱 [ **;**套件完整名稱...]
指定套件識別碼篩選條件。 您可以指定套件檔案的清單。 使用分號分隔檔案的名稱。

-PkgAppIdFilter PRAID [**;**PRAID...]
指定套件相對應用程式識別碼 (PRAID) 篩選條件。 PRAID 是封裝內應用程式的唯一標識碼。 您可以指定多個 PRAID。 使用分號分隔標識碼。 此選項適用於從 Windows 8.1 開始的 UWP app。

-Pmc Ctr1,Ctr2,...:Name+Name+...
在指定的核心事件上設定性能監視器計數器 (PMC) 取樣。 此選項可從 Windows 8 開始使用。

針對計數器清單使用 -ProfileSource 說明 。 針對核心事件清單使用 -eflag Help

-prealloc
在啟動會話之前,保留 .etl 檔案的空間。

此參數需要 -seq-cirMaxFileSize。 它不適用於 -newfile

-ProfileSource src
設定要使用的分析來源。 如需來源清單,請使用命令 tracelog -ProfileSource 說明。 此選項可從 Windows 8 開始使用。

此選項僅適用於 Windows 8 和更新版本的 Windows。

-rt
啟動即時追蹤會話。 (追蹤記錄工作階段 (-f) 是預設值。

如果您使用 -rt-f,追蹤訊息會傳送至追蹤取用者和事件追蹤記錄檔。 您無法搭配 -buffering 使用 -rt-f。 如需詳細資訊,請參閱 追蹤會話

-安全
以安全模式啟用追蹤。 此選項會選取EVENT_TRACE_SECURE_MODE記錄模式。 限制誰可以將事件記錄到具有TRACELOG_LOG_EVENT許可權的會話。

-sessionguid
指定自動記錄器會話 GUID 登錄值。

-SetProfInt n **** src

重要

不建議變更分析間隔。

設定指定來源的分析間隔 (n),其中 n 單位為 100ns。 預設值為 10000 (相當於 1 毫秒)。 此選項可從 Windows 8 開始使用。

-seq MaxFileSize
指定事件追蹤記錄檔 (.etl) 檔案的循序記錄(在檔尾停止錄製事件)。 MaxFileSize 會以 MB 指定檔案的大小上限。 如果沒有 MaxFileSize 值,則會忽略此參數。

循序記錄是預設值,但您可以使用此參數來設定檔案大小上限或使用 -prealloc。 如果沒有此參數,則沒有檔案大小限制。

-sourceguid SourceGuid
指定當做 SourceId 參數傳遞至 EnableTraceExEnableTraceEx2 函式的 GUID。 SourceId 會識別啟用提供者的會話。

-stackwalk [事件]
指定要收集堆疊的核心事件。 針對核心事件清單使用 -eflag Help 。 此參數僅適用於NT核心記錄器或系統記錄器追蹤會話。

-StackWalkFilter {-in-out|}nid1 id2 ...
指定具有 n 個事件識別碼的事件識別碼篩選條件(最多允許 64 個事件識別子)。 此選項可從 Windows 8.1 開始提供。

-systemlogger
記錄器可以接收 SystemTraceProvider 事件。 請參閱 設定和啟動 SystemTraceProvider 工作階段。 此選項可從 Windows 8 開始使用。

-um
指定私人追蹤會話:私人追蹤會話需要此參數。

-UseCPUCycle
使用處理器頻率(也稱為「CPU 刻度」)來測量每個追蹤訊息的時間。

此定時器提供最高可能的解析度,但如此敏感,因此很容易發生錯誤,特別是在受電源管理的系統和多處理器計算機上。 例如,如果您在具有 Arm 處理器的電腦上指定此定時器,可能會導致順序錯亂的事件。 相反地, 建議使用 -UsePerfCounter 進行高解析度追蹤。

-UsePerfCounter 是事件追蹤的預設定時器。

-UsePerfCounter
使用每個追蹤訊息,記錄高解析度性能計數器時鐘的值,而不是較低解析度的系統時間。

由於性能計數器時鐘會以大約 100 奈秒的單位計算,因此它會為每個事件提供唯一的時間戳。

-UsePerfCounter 是事件追蹤的預設定時器。

-UseSystemTime
記錄系統時間,而不是具有每個追蹤訊息的高解析度性能計數器時鐘時間。 由於系統定時器解析度為10毫秒(相較於性能計數器時鐘的100奈秒),因此多個事件可以有相同的系統時間。

-UsePerfCounter 是事件追蹤的預設定時器。

-? | 說明 | -?
顯示使用資訊。

評論

下列批注適用於數個 Tracelog 命令。

語法錯誤

Tracelog 不會顯示所有不正確語法組合的錯誤,例如當您嘗試更新無法變更的設定時。 相反地,它會忽略命令的無效部分,並顯示成功訊息。

系統記錄器

Windows 會針對許多用途使用追蹤會話,其中有些對正常作業至關重要。 請勿停止您未啟動的任何追蹤會話。

列舉

若要判斷 tracelog -starttracelog -enable 命令是否成功,請使用 tracelog -enumguid 命令來判斷提供者是否已啟用,然後使用 tracelog -l (List) 命令來檢查追蹤會話的屬性。

即時和記錄會話

追蹤會話可以是即時追蹤會話和追蹤記錄會話。 如果您在 相同的命令中包含 -rt (即時) 和 -f (記錄會話) 參數,系統會將緩衝區內容同時傳送至記錄檔和追蹤取用者。 不過,您必須先使用 tracelog -flush 命令來排清緩衝區,才能將即時訊息傳遞新增至追蹤記錄會話。

如果您啟動即時會話 (-rt),然後更新至記錄會話 (-f),則任何新的追蹤訊息只會傳送至記錄檔。 若要將記錄檔新增至即時會話,請在 tracelog -update 命令中使用 -rt-f

如果您啟動記錄會話 (-f),您可以更新為即時會話 (-rt),但除了追蹤取用者之外,訊息仍會繼續傳送至記錄。 您無法藉由更新來排除會話中的記錄。

若要從僅限即時會話顯示或儲存追蹤訊息,您也可以使用追蹤取用者,例如 Tracefmt,或使用 TraceView,也就是追蹤控制器(例如 Tracelog)和追蹤取用者。 使用 Tracefmt 時,請務必在 Tracefmt 命令中包含 -rt 參數。

旗標和層級

除非旗標或層級設定為特定值,否則大部分的追蹤提供者都不會產生任何追蹤訊息。 提供者會使用旗標或層級來控制所追蹤的專案。 如果事件追蹤記錄檔是空的,請檢閱追蹤提供者中的旗標和層級。

若要確保一律產生追蹤訊息,請完成下列步驟:

  1. flags 參數設定為 0xFFFFFFFF,以啟用所有旗標設定。

  2. levels 參數設定為 255,以啟用所有層級設定。

-eflag 參數

Tracelog 具有 -eflag (擴充旗標) 參數,其設計目的是啟用NT核心記錄器追蹤會話的其他旗標,尤其是啟用追蹤 DPC、ISR 和內容切換事件的旗標。 由於 tracelog -start 命令現在包含 -dpcisr 參數,因此不再需要使用 -eflag 參數,因此不建議使用 。

過時的參數

在舊版 Tracelog 中 ,tracelog -start 命令支援 -rt b 參數組合。 這個組合已由 -buffering 參數取代,而且不再有效。

已移除 -x 參數,因為停止所有追蹤會話可能會導致系統不穩定。

已移除 -disableex 參數。 請改用 -disable

NT 核心記錄器

若要使用NT核心記錄器啟動追蹤會話,請省略 tracelog -start 命令中的會話名稱,而不使用 -guid 參數來指定提供者 GUID 檔案。 「NT 核心記錄器」 是預設會話名稱。

如果省略會話名稱或為 「NT Kernel Logger」,系統就會啟動 NT Kernel Logger 追蹤會話,即使您使用 -guid 參數來指定 SystemTraceControlGUID 以外的 GUID,NT 核心記錄器追蹤會話的控制 GUID 也一樣。 如果您指定不同的 GUID,系統會傳回錯誤(「系統記錄器不接受應用程式 GUID),但仍會啟動 NT 核心記錄器追蹤會話。

根據預設,當 Tracelog 啟動 NT 核心記錄器追蹤會話時,它會啟用進程、線程、實體磁碟 I/O 和 TCP/IP 事件的追蹤,但您可以使用參數來停用追蹤這些事件,並啟用其他事件的追蹤。

DPC/ISR 事件

由於 Tracerpt 預期系統性能計數器時鐘時間為時間戳,因此當您啟動追蹤會話時,請使用 Tracelog -UsePerfCounter 參數。

由於 DPC 和 ISR 事件是由特殊檢測所收集,因此不會出現在 Tracelog 顯示來確認命令之數據表的 [已啟用追蹤] 資料 列中。

如需詳細資訊,請參閱 範例 15:測量 DPC/ISR 時間