使用調試程式標記語言
調試程式命令可以使用純文字或使用調試程式標記語言 (DML) 的增強格式來提供輸出。 使用 DML 增強的輸出包含您可以按下以執行相關命令的連結。
DML 適用於 Windows 10 和更新版本。
支援 DML 的命令
下列命令能夠產生 DML 輸出:
lmD 命令是能夠提供 DML 輸出的命令範例。 lmD 命令會顯示已載入的模組清單。 如下圖所示,每個模組名稱都是您可以按下的連結,以取得模組的詳細資訊。
下圖顯示單擊 usbuhci 鏈接的結果。 輸出包含其他連結,可讓您探索usbuhci模組的進一步詳細數據。
開啟和關閉 DML
.prefer_dml命令會開啟或關閉 DML。 開啟 DML 時(.prefer_dml 1),能夠產生 DML 輸出的命令預設會產生 DML 輸出。
主控台增強功能
所有 Windows 調試程式現在都有支援 DML 剖析的命令輸出區域。 在windbg中,命令窗口支援所有 DML 行為,並會顯示色彩、字型樣式和連結。 控制台調試程式 ntsd、cdb 和 kd 僅支援 DML 的色彩屬性,而且只有在啟用色彩模式的 true 控制台中執行時才支援。 具有重新導向 I/O、ntsd –d 或 remote.exe 工作階段的調試程式將不會顯示任何色彩。
主控台調試程式色彩模式
主控台調試程式 ntsd、cdb 和 kd 現在能夠在 true 控制台中執行時顯示彩色輸出。 這不是預設值,它需要透過tools.ini明確啟用色彩模式。 tools.ini中的新col_mode <true|false> 標記會控制色彩模式設定。 如需使用tools.ini檔案的詳細資訊,請參閱 設定tools.ini
啟用色彩模式時,調試程式會產生彩色輸出。 根據預設,大部分色彩都不會設定,而是預設為目前的控制台色彩。
Windbg 命令瀏覽器視窗
在 Windows 10 和更新版本的 Windbg 中,命令瀏覽器視窗會剖析並顯示 DML。 完全支持連結、exec> 和外觀修改等<所有<標記。>
若要使用 WinDbg 中的功能表啟動命令瀏覽器工作階段,請選取 [檢視]、 [命令瀏覽器]。 命令視窗中的 .browse <命令> 將會開啟新的命令瀏覽器視窗,並執行指定的命令。 如需詳細資訊,請參閱在 WinDbg 中使用命令瀏覽器視窗(傳統版)。 您也可以使用 Ctrl+N 開啟新的命令瀏覽器視窗。
命令瀏覽器視窗會刻意模擬網頁瀏覽器的行為,其中包含下拉式歷程記錄和上一個/下一個按鈕。 歷程記錄下拉式清單只會顯示最後 20 個命令,但完整歷程記錄會保留下來,因此您可以返回命令,以顯示較舊的歷程記錄。
您可以視需要一次開啟多個命令視窗。 命令視窗會保存在工作區中,但只儲存目前的命令;歷程記錄不會保留。
WinDbg 檢視 功能表具有 [ 設定瀏覽器啟動命令 ] 選項,可讓使用者設定新瀏覽器視窗的慣用命令,例如.dml_start。 此命令會儲存在工作區中。
[檢視] 功能表上提供 [最近的命令] 子視窗,以保留感興趣的命令。 選取最近的命令會開啟具有指定命令的新瀏覽器。 瀏覽器視窗的操作功能表上有一個功能表項,可將視窗的目前命令新增至最近的命令清單。 最近的命令清單會保存在工作區中。
命令瀏覽器視窗會同步執行命令,因此在命令完成之前不會顯示輸出。 長時間執行的命令在完成之前不會顯示任何專案。
連結具有類似網頁瀏覽器中右鍵操作功能表的右鍵操作功能表。 您可以在新的瀏覽器視窗開啟連結。 連結的命令可以複製到剪貼簿以供使用。
按下標題列右上角附近的圖示,將命令瀏覽器視窗設定為自動重新整理或手動重新整理。 自動重新整理瀏覽器會自動在調試程式狀態變更上重新執行其命令。 這會讓輸出保持即時,但代價是在所有變更上執行命令。 自動重新整理預設為開啟。 如果瀏覽器不需要即時執行,則可以使用視窗的操作功能表來停用自動重新整理。
因為命令是由引擎執行,而不是由使用者介面、使用者介面特定命令,例如 .cls(Clear Screen),會在命令瀏覽器視窗中使用時傳回 語法錯誤。 這也表示當使用者介面是遠端用戶端時,命令將會由伺服器執行,而不是由客戶端執行,而且命令輸出會顯示伺服器狀態。
命令瀏覽器視窗可以執行任何調試程式命令,它不一定是產生 DML 的命令。 您可以使用瀏覽器視窗,讓一組任意的命令可供使用。
自定義 DML
DML 會定義一組可包含在命令輸出中的標記。 其中一個範例是 <連結> 標記。 您可以使用 .dml_start 和 .browse 命令來實驗<鏈接>標籤(和其他 DML 標籤)。 .browse 命令 .dml_start filepath 會執行儲存在 DML 檔案中的命令。 輸出會顯示在 [命令瀏覽器] 視窗中 ,而不是一般命令視窗。
假設檔案 c:\DmlExperiment.txt包含下列幾行。
My DML Experiment
<link cmd="lmD musb*">List modules that begin with usb.</link>
下列命令會顯示 [命令瀏覽器] 視窗中的文字和連結。
.browse .dml_start c:\Dml_Experiment.txt
如果您按下開頭為 usb 連結的清單模組,您會看到類似下圖的輸出。
如需 DML 自定義和 DML 標籤完整清單的完整討論,請參閱 使用 DML 自定義調試程序輸出。