搭配 VSS 使用追蹤工具
若要收集 VSS 基礎結構的追蹤資訊,您可以使用 VssTrace 工具、Logman 工具或 Tracelog 工具。 VssTrace 可在 Microsoft Windows 軟體開發工具包中取得,可用來追蹤 Windows 7 和更新版本的 Windows 操作系統上的 VSS 應用程式。 Logman 是追蹤事件和性能計數器的追蹤控制器;它也可以用來追蹤 Windows 7 和更新版本的 Windows 作業系統上的 VSS 應用程式。 追蹤記錄包含在 Windows 驅動程式套件 (WDK) 中。
若要搭配 自動化系統復原使用追蹤工具(ASR),請參閱 搭配 ASR 應用程式使用追蹤工具。
注意
VssTrace、Logman 和 Tracelog 全都需要系統管理員許可權。
如需每個工具的相關信息,請參閱下列各節:
使用 VssTrace
若要從命令行執行 VssTrace 工具,請使用下列語法:
vsstrace 命令行選項
若要顯示 VssTrace 工具的簡潔命令列說明,請使用下列語法:
vsstrace -help
若要顯示 VssTrace 工具的詳細命令列說明,請使用下列語法:
vsstrace -help all
VssTrace 命令行選項
VssTrace 工具會使用下列命令行選項:
-
-f 旗標
-
啟用旗標是由 Flags 位掩碼指定其旗標的 模組。 每個旗標都會對應至 VSS 模組。 如果 Flags 為零,則不會啟用任何模組。 請注意,預設會啟用大部分的模組。 此選項可以與 **+**模組 選項結合。 例如, vsstrace -f 0 +WRITER +COORD 會停用默認啟用之所有模塊的追蹤,並啟用 VSS 寫入器和 VSS 服務的追蹤。 或者, vsstrace +f 0xffff -COORD 可追蹤 VSS 服務以外的所有模組。
注意
如果您使用 -f 選項搭配 **+**Module 選項, 則 -f 必須出現在 **+**Module 選項之前。
下表列出每個可用模組的模組名稱和旗標。
模組 旗標 預設為啟用 追蹤的專案 EXCEPT 0x00000001 Yes C++例外狀況處理。 COORD 0x00000002 Yes VSS 服務,也稱為 VSS 協調器。 SWPRV 0x00000004 Yes VSS 系統陰影複製提供者服務。 BUCOMP 0x00000008 Yes VSS 要求者和備份元數據處理。 作家 0x00000010 Yes VSS 寫入器作業和 VSS 裝載的寫入器實作,例如 Windows 登錄寫入器。 VSSAPI 0x00000020 Yes 由 VSSAPI.DLL 匯出之 VSS API 的雜項函式。 HWDIAG 0x00000040 Yes VSS 硬體提供者基礎結構和作業。 ADMIN 0x00000080 Yes VSS 命令行公用程式,例如VSSADMIN.EXE和DISKSHADOW.EXE。 VSSUI 0x00000100 Yes 共用資料夾組態使用者介面的陰影複製 (UI)。 UI 僅適用於 Windows Server 作業系統。 測試 0x00000200 Yes 不適用。 (保留此追蹤模組。 IOCTL 0x00000400 Yes VSS 服務透過呼叫 DeviceIoControl 函式所起始的 FSCTL 和 IOCTL 作業詳細數據。 GEN 0x00000800 Yes 一般 VSS 公用程式函式,例如配置器、字串類別,以及登錄和磁碟區作業。 WRXML 0x00001000 No 寫入器元數據的 XML 處理。 此課程模組具有非常高的雜訊等級。 VSSXML 0x00002000 No XML 處理基類。 此課程模組具有非常高的雜訊等級。 -
**+**模組
-
啟用 Module 指定的模組。 一次可以啟用多個模組。 若要列出可用的模組,請在命令行提示字元中輸入 vsstrace –help 模組 。
-
-模組
-
停用 Module 所指定的模組。 若要列出可用的模組,請在命令行提示字元中輸入 vsstrace –help 模組 。
-
+pid ProcessId
-
啟用 ProcessId 所指定的進程。 若要啟用所有進程,請使用 「*」 做為 ProcessId 的值。 一次可以指定多個 pid 選項。 選項的順序會決定哪些進程已啟用或停用。 例如,若要只啟用進程標識碼為0xe8c的進程,請使用 vsstrace -pid * +pid 0xe8c。
-
-pid ProcessId
-
停用 ProcessId 所指定的進程。 若要停用所有進程,請使用 「*」 做為 ProcessId 的值。 一次可以指定多個 pid 選項。 選項的順序會決定哪些進程已啟用或停用。 例如,若要停用進程標識碼為0xe8c的進程以外的所有進程,請使用 vsstrace -pid * +pid 0xe8c。
-
+tid ThreadId
-
啟用 ThreadId 指定的線程。 若要啟用所有線程,請使用 「*」 作為 ThreadId 的值。 一次可以指定多個 tid 選項。 選項的順序會決定哪些線程已啟用或停用。 例如,若要只啟用進程標識碼為0x31a的線程,請使用 vsstrace -tid * +tid 0x31a。
-
-tid ThreadId
-
停用 ThreadId 指定的線程。 若要停用所有線程,請使用 「*」 作為 ThreadId 的值。 一次可以指定多個 tid 選項。 選項的順序會決定哪些線程已啟用或停用。 例如,若要停用進程標識碼為 0x31a的線程以外的所有線程,請使用 vsstrace -tid * +tid 0x31a。
-
-l 層級
-
使用 Level 所指定的追蹤層級。 層級越高,追蹤輸出越詳細。 每個層級都包含所有較低層級。 默認層級為170。 下列層級可供使用。
層級 追蹤輸出中包含的資訊 000 無 020 嚴重錯誤 030 未處理的例外狀況 040 錯誤 050 判斷提示 060 警告 080 例外狀況處理 100 事件記錄活動 120 一般資訊 140 程式碼流程 160 函式進入和結束 170 函式的傳回值 180 函式參數 (terse) 190 函式參數 (詳細資訊) 200 詳細資訊資訊層級 1 210 詳細資訊資訊層級 2 220 詳細資訊資訊層級 3 230 快速程式代碼層級 1 240 快速程式代碼層級 2 250 快速程式代碼層級 3 255 全部 -
+縮排
-
在每個函式和子函式界限上縮排格式化的追蹤輸出。
-
-訂貨單
-
請勿縮排格式化的追蹤輸出。
-
-etl EtlFile
-
將 EtlFile 指定的 Logman 輸出檔轉換成可讀取的文字格式。
-
-o OutputFile
-
將追蹤資訊儲存至 OutputFile 所指定的輸出檔案。 為了達到最佳效能,輸出檔案應該位於不屬於陰影複製的磁碟區上。
-
-help HelpOption
-
顯示 HelpOption 所指定的命令行說明。 有效的 HelpOption 值是 模組、 層級和 全部。 指定 模組 會導致列出模組。 指定 層級 會導致列出可用的層級。 指定 顯示所有 原因的詳細說明。 如果未使用任何選項,則會顯示簡潔的說明。
使用 Logman
下列程序說明如何搭配 VSS 應用程式使用 Logman。
若要搭配 VSS 應用程式使用 Logman
使用下列命令來開始追蹤:
logman start vss -o *x:\*vss.etl -ets -p {9138500e-3648-4edb-aa4c-859e9f7b7c38} 0xfff 170
注意
將 「x:\」 取代為您要儲存追蹤記錄檔之目錄的路徑。
使用下列命令停止追蹤:
logman stop vss -ets
追蹤記錄檔是 *x:\*vss.etl。
如需 Logman 工具的詳細資訊,請參閱 Logman。
使用 Tracelog
下列程式描述如何使用 Tracelog。
使用 Tracelog
建立名為 vss.ctl 的文本文件,其中只包含下列文字:
9138500e-3648-4edb-aa4c-859e9f7b7c38 vss
使用下列命令來開始追蹤:
tracelog -start vss -f *x:\*vss.etl -guid vss.ctl -flag 0xff -level 0xaa
注意
將 「x:\」 取代為您要儲存追蹤記錄檔之目錄的路徑。
使用下列命令停止追蹤:
tracelog -stop vss
追蹤記錄檔是 *x:\*vss.etl。
如需 Tracelog 工具的詳細資訊,請參閱 Tracelog。