使用 VSS 追蹤工具
若要收集 VSS 基礎結構的追蹤資訊,您可以使用 VssTrace 工具、Logman 工具或 Tracelog 工具。 VssTrace 可在 Microsoft Windows 軟體開發工具包中取得,可用來追蹤 Windows 7 和更新版本的 Windows 操作系統上的 VSS 應用程式。 Logman 是追蹤事件和性能計數器的追蹤控制器;它也可以用來追蹤 Windows 7 和更新版本的 Windows 作業系統上的 VSS 應用程式。 Tracelog 包含在 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 選項之前。
下表列出每個可用模組的模組名稱和旗標。
模組 旗標 預設為啟用 追蹤的項目 除外 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 硬體提供者基礎結構和作業。 管理員 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 不 寫入器元數據的 XML 處理。 此模組具有非常高的噪音水平。 VSSXML 0x00002000 否 XML 處理基類。 此模組具有很高的雜訊等級。 -
**+** 模組
-
啟用Module指定的模組。 一次可以啟用多個模組。 若要列出可用的模組,請在命令行提示字元中輸入 vsstrace –help 模組 。
-
- 模組
-
停用 Module 所指定的模組。 若要列出可用的模組,請在命令行提示字元中輸入 vsstrace –help 模組 。
-
+pidProcessId
-
啟用 ProcessId 所指定的進程。 若要啟用所有進程,請使用 「*」 做為 ProcessId 的值。 一次可以指定多個 pid 選項。 選項的順序會決定哪些進程已啟用或停用。 例如,若要只啟用進程標識碼為0xe8c的進程,請使用 vsstrace -pid * +pid 0xe8c。
-
-pidProcessId
-
停用 ProcessId 所指定的進程。 若要停用所有進程,請使用 「*」 做為 ProcessId 的值。 一次可以指定多個 pid 選項。 選項的順序會決定哪些進程已啟用或停用。 例如,若要停用進程標識碼為0xe8c的進程以外的所有進程,請使用 vsstrace -pid * +pid 0xe8c。
-
+tid執行緒識別碼
-
啟用 ThreadId 指定的線程。 若要啟用所有線程,請使用 「*」 作為 ThreadId 的值。 一次可以指定多個 tid 選項。 選項的順序會決定哪些線程已啟用或停用。 例如,若要只啟用進程標識碼為0x31a的線程,請使用 vsstrace -tid * +tid 0x31a。
-
-tidThreadId
-
停用 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 全部 -
+縮排
-
在每個函式和子函式界限上縮排格式化的追蹤輸出。
-
-縮排
-
請勿縮排格式化的追蹤輸出。
-
-etlEtlFile
-
將 EtlFile 指定的 Logman 輸出檔轉換成可讀取的文字格式。
-
-oOutputFile
-
將追蹤資訊儲存至 OutputFile 所指定的輸出檔案。 為了達到最佳效能,輸出檔案應該位於不屬於陰影複製的磁碟區上。
-
-helpHelpOption
-
顯示 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。