在 WinDbg 中,您可以輸入命令或使用 [記憶體] 視窗來檢視和編輯記憶體。
調試程式命令視窗
您可以在 [調試程式命令] 視窗中輸入其中一個 [顯示記憶體 ] 命令,以檢視記憶體。 您可以在 [調試程式命令] 視窗中輸入其中一個 Enter Values 命令來編輯記憶體。 如需詳細資訊,請參閱 依虛擬位址存取記憶體 和 依實體位址存取記憶體。
開啟記憶體視窗
若要開啟 [記憶體] 視窗,請從 [檢視] 功能表選擇 [記憶體]。 (您也可以按 ALT+5 或選取 [記憶體 ] 按鈕 (
下列螢幕快照顯示記憶體視窗的範例。
使用記憶體視窗
[記憶體] 視窗會顯示數據在數個欄中。 視窗左側的欄位顯示每一行的起始位址。 其餘的列顯示所需資訊,從左至右。 如果您在 [顯示格式] 選單中選取 [位元組],則對應到這些位元組的 ASCII 字元會顯示在視窗右側。
注意 根據預設,[記憶體] 視窗會顯示虛擬記憶體。 這種類型的記憶體是使用者模式中唯一可用的記憶體類型。 在核心模式中,您可以使用 [ 記憶體選項 ] 對話框來顯示物理記憶體和其他數據空間。 本主題稍後會說明 [記憶體選項 ] 對話框。
在 [記憶體] 視窗中,您可以執行下列動作:
若要寫入記憶體,請在 [記憶體] 視窗中選取並輸入新數據。 您只能編輯十六進位數據,您無法直接編輯 ASCII 和 Unicode 字元。 當您輸入新資訊時,變更就會生效。
若要查看記憶體的其他區段,請使用 [記憶體] 視窗工具列上的 [ 上一 頁] 和 [ 下一步] 按鈕,或按 PAGE UP 或 PAGE DOWN 鍵。 這些按鈕和按鍵會顯示記憶體中立即之前或之後的區段。 如果您要求的頁面無效,將會出現錯誤訊息。
若要在視窗中流覽,請使用向右鍵、向左鍵、向上鍵和向下鍵。 如果您使用這些索引鍵來移出頁面,則會顯示新的頁面。 使用這些索引鍵之前,您應該調整 [記憶體] 視窗的大小,使其沒有滾動條。 此尺寸可讓您區分實際的頁面邊緣和視窗邊界。
若要變更正在檢視的記憶體位置,請在 [記憶體] 視窗頂端的位址方塊中輸入新位址。 請注意,[記憶體] 視窗會在您輸入位址時重新整理其顯示,因此在您完成輸入位址之前可能會出現錯誤訊息。
注意 您在方塊中輸入的位址會在目前的基度中解譯。 如果目前的基數不是 16,您應該在十六進位位址前面加上 0x。 若要變更預設的基數,請在 [調試程式命令] 視窗中使用 n (Set Number Base) 命令。 記憶體視窗中的顯示本身不會受到目前基底的影響。
若要變更視窗用來顯示記憶體的數據類型,請使用 [記憶體] 視窗工具列中的 [ 顯示格式 ] 功能表。 支持的數據類型包括短字、雙字和四字;short、long 和 quad 整數和不帶正負號的整數;10 位元組、16 位元組、32 位和64位實數;ASCII 字元;Unicode 字元;和十六進位位位元組。 十六進位位元組的顯示也包含 ASCII 字元。
[記憶體] 視窗有一個工具列,其中包含兩個按鈕、一個功能表和一個方塊,並具有具有其他命令的快捷方式功能表。 若要存取功能表,請選取並按住標題列(或以滑鼠右鍵按兩下),或選取工具列上視窗右上角附近的圖示。 ALT+SHIFT+5 會關閉使用中的 [記憶體] 視窗。
(僅限工具列)位址方塊可讓您指定新的位址或位移。 此方塊的確切意義取決於您正在檢視的記憶體類型。 例如,如果您要檢視虛擬記憶體,此方塊可讓您指定新的虛擬位址或位移。
(僅限工具列) 顯示格式 可讓您選取新的顯示格式。
(工具列和功能表)上一個(在工具列上)與上一頁(在快捷功能表上)會顯示上一段記憶體。
(工具列和功能表) [下一步 ] (在工具列上) 和 [下一頁 ] (快捷方式功能表上) 會導致顯示下一個記憶體區段。
(僅限功能表) 工具列 會開啟和關閉工具列。
(僅限功能表) 自動調整資料列 可確保 [記憶體] 視窗中顯示的數據行數目符合 [記憶體] 視窗的寬度。
(僅限功能表) 停駐 或 取消停駐 會使視窗進入或離開停駐狀態。
(僅限功能表) 移至新的停靠 會關閉記憶體視窗,並在新的停靠區中開啟它。
(僅限選單)設定為視窗類型的索引標籤停駐目標會將選取的 [記憶體] 視窗設定為其他 [記憶體] 視窗的索引標籤停駐目標。 當選定一個記憶體視窗作為標籤停駐目標後,再開啟的所有記憶體視窗都會自動與該視窗一起分組到標籤集合中。
(僅限功能表) 一律浮動 會導致視窗保持未停駐,即使視窗拖曳到停駐位置也一樣。
(僅限功能表) 使用框架移動 會導致移動 WinDbg 框架時移動視窗,即使視窗未停駐也一樣。
(僅限功能表) 屬性 會開啟 [記憶體選項 ] 對話框,如本主題中的下一節所述。
(僅限功能表) 說明 會開啟 Windows 偵錯工具文件中的本主題。
(僅限功能表) 關閉 關閉此視窗。
記憶體選項對話框
當您在快捷方式功能表上選取 [屬性 ] 時,[ 記憶體選項 ] 對話框隨即出現。
在核心模式中,有六種記憶體類型可作為此對話框中的索引標籤: 虛擬記憶體、 實體記憶體、 總線數據、 控制數據、 I/O (I/O 埠資訊),以及 MSR (模型特定的緩存器資訊)。 選取對應至您要存取之資訊的索引標籤。
在使用者模式中,只有 [ 虛擬記憶體] 索引標籤可供使用。
每個索引標籤都可讓您指定您要顯示的記憶體:
在 [ 虛擬記憶體] 索引卷標的 [ 位移 ] 方塊中,指定您要檢視之內存範圍開頭的位址或位移。
在 [ 物理記憶體] 索引卷標的 [ 位移 ] 方塊中,指定您要檢視之內存範圍開頭的實體位址。 [記憶體] 視窗只能顯示已描述的、可緩存的物理記憶體。 如果您想要顯示具有其他屬性的實體記憶體,請使用 d* (顯示記憶體) 命令或 !d\* 擴充功能。
在 [總線數據] 索引 標籤的 [ 總線數據類型 ] 選單中,指定總線數據類型。 然後,使用 [總線號碼]、[ 插槽號碼] 和 [ 位移 ] 方塊來指定您想要檢視的總線數據。
在 [ 控制數據] 索引 標籤中,使用 [處理器 ] 和 [ 位移 ] 文字框來指定您想要檢視的控件數據。
在 [ I/O] 索引標籤的 [ 介面類型 ] 選單中,指定 I/O 介面類型。 使用 [總線號碼]、[ 位址空間] 和 [ 位移 ] 方塊來指定您想要檢視的數據。
在 [MSR] 索引標籤的 [MSR] 方塊中,指定您想要檢視的模型專用暫存器。
每個索引標籤也包含 顯示格式 功能表。 此選單的效果與 [記憶體] 視窗中的 [顯示格式 ] 選單相同。
在 [記憶體選項] 對話框中選取 [確定],讓您的變更生效。
其他資訊
如需有關記憶體操作以及描述其他記憶體相關命令的詳細資訊,請參閱讀取和寫入記憶體。