Share via


Tracelog 命令語法

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

注意

若要控制追蹤會話,您必須是電腦上的 Performance Log Users 群組或 Administrators 群組的成員, (以 系統管理員 身分執行) 。

    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 -stoptracelog -x (停止所有) 命令來停止追蹤會話。

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 命令以啟用提供者。

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

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

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

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

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

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

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

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

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

這個強制排清除了每當追蹤訊息緩衝區已滿以及追蹤會話停止時自動發生的排清,以及排清計時器所啟動的排清 (-ft) 。

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

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

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

您可以使用 tracelog -flush 命令搭配 -fLogfile 選項,將緩衝區中目前位於緩衝區中的追蹤訊息排清到指定的 追蹤記錄 檔 (.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 核心記錄器追蹤會話 ,如果您使用 -guid 參數來指定不同的追蹤提供者,則會宣告錯誤。

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

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

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

-systemrundown [LoggerName]
要求 SystemTraceProvider 記錄在 LoggerName 會話上導向的取消事件。 如需啟動追蹤會話的相關資訊,請參閱 設定和啟動 SystemTraceProvider 會話

此命令僅適用于 windows Windows 8 和更新版本。

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

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

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

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

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

tracelog -update命令中,只有在更新私人追蹤會話 (-um) .To 在會話執行時從標準追蹤會話新增或移除提供者時,-guid參數才有效,請使用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的命令中才有效。

-bBufferSize
指定針對追蹤會話配置之每個緩衝區的大小,以 KB 為單位。 預設值取決於處理器數目、實體記憶體數量,以及使用的作業系統。

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

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

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

-cirMaxFileSize
在檔案結尾指定迴圈記錄 (,在事件追蹤記錄檔 (.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 事件的工具。 如需解譯和格式化這些事件的相關資訊,請參閱下方的。

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

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

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

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

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

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

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

-flag 旗標

注意

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

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

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

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

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

-ftFlushTime
指定追蹤訊息緩衝區排清的頻率,以秒為單位。 排清時間下限為 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 來指定進程。 請勿搭配-heap使用-guid。 系統會定義堆積記憶體追蹤的自訂 GUID (HeapGuid) 。 您無法在相同的命令中使用 -heap-critsec

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

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

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

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

-獨立

注意

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

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

-K b
針對記錄檔大小,請使用 kb (KB) 。 預設值為 MB (MB) 。

-Kd
將追蹤訊息重新導向至 KD 或 Windbg,無論連結哪一個。 此參數也會將追蹤緩衝區大小設定為 3 KB、偵錯工具的最大緩衝區大小,並忽略命令中的任何 -b 參數。

當您使用 -kd提交 Tracelog 命令時,偵錯工具必須執行。 否則,Tracelog 會停止回應。

如需在核心偵錯工具中顯示追蹤訊息的相關資訊,請參閱批註。

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

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

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

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

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

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

-lowcapacity

注意

除非需要降低記憶體成本,否則不應使用此選項。 使用此選項可讓每個事件更慢記錄。

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

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

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

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

-maxNumberOfBuffers
指定 Tracelog 為追蹤會話配置的緩衝區數目上限。 預設值取決於處理器數目、實體記憶體數量,以及使用的作業系統。

-matchallkwn
指定 MatchAllKeyWord 位元遮罩,以限制提供者寫入的事件類別,並搭配 -matchanykw 選項使用。

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

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

-matchanykwn
指定 MatchAnyKeyword 位元遮罩,決定提供者寫入的事件類別。

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

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

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

使用 -newfile時,您也必須使用 -fLogFile 參數,而 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,例如當單一程式建立多個進程時。

-PidFilternpid1 pid2 ...
指定 具有 n Pids 的 Pid 篩選, (允許的最大 8 個) 。 此選項可從 Windows 8.1 開始提供。

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

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

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

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

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

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

此參數需要具有MaxFileSize-seq-cir。 它不適用於 -newfile

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

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

-Rt
啟動即時追蹤會話。 (追蹤記錄會話 (-f) 是 default.)

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

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

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

-SetProfIntn **** src

重要

不建議變更分析間隔。

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

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

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

-sourceguidSourceGuid
指定當做 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
使用每個追蹤訊息記錄系統時間,而不是高解析度效能計數器時鐘時間。 因為相較于效能計數器) 時鐘的 100 奈秒,系統計時器解析度為 10 毫秒 (,所以多個事件可以有相同的系統時間。

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

-? |help |-?
顯示使用資訊。

評論

下列批註適用于數個 Tracelog 命令。

語法錯誤

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

系統記錄器

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

Enumguid

若要判斷 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 Kernel Logger」 是預設會話名稱。

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

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

DPC/ISR 事件

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

由於特殊檢測會收集 DPC 和 ISR 事件,因此不會出現在 Tracelog 所顯示資料表的 Enabled 追蹤 資料列中,以確認命令。

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