.frame (設定本機內容)
.frame命令會指定 (範圍) 用來解譯區域變數或顯示目前本機內容的區域內容。
.frame [/c] [/r] [FrameNumber]
.frame [/c] [/r] = BasePtr [FrameIncrement]
.frame [/c] [/r] = BasePtr StackPtr InstructionPtr
參數
/C
將指定的框架設定為目前的本機覆寫內容。 此動作可讓使用者存取呼叫堆疊中任何函式的非volatiatile 暫存器。
/R
顯示有關指定本機內容的暫存器和其他資訊。
FrameNumber
指定您想要其本機內容的框架數目。 如果此參數為零,命令會指定目前的框架。 如果您省略此參數,此命令會顯示目前的本機內容。
BasePtr
指定用來判斷框架的堆疊追蹤基底指標,如果您在命令名稱 (.frame) 之後新增等號 (=) 。 在 x86 型處理器上,您會在 BasePtr (後面新增另一個引數,該引數會解譯為 BasePtr) 或兩個以上的引數,並在 BasePtr (解譯為 InstructionPtr 和 StackPtr) 。
FrameIncrement
僅以 x86 為基礎的處理器 ()
指定超過基底指標的額外畫面格數量。 例如,如果基底指標0x0012FF00是框架 3 的位址,則命令 .frame 12ff00 相當於 .frame 3,而 .frame 12ff00 2 相當於 .frame 5。
StackPtr
(x86 型處理器僅) 指定用來判斷框架之堆疊追蹤的堆疊指標。 如果您省略 StackPtr 和 InstructionPtr,偵錯工具會使用 esp 暫存器指定的堆疊指標,以及 eip 暫存器指定的指令指標。
InstructionPtr
(x86 型處理器僅) 指定用來判斷框架之堆疊追蹤的指令指標。 如果您省略 StackPtr 和 InstructionPtr,偵錯工具會使用 esp 暫存器指定的堆疊指標,以及 eip 暫存器指定的指令指標。
環境
項目 | 描述 |
---|---|
模式 | 使用者模式、核心模式 |
目標 | 即時、損毀傾印 |
平台 | 全部 |
其他資訊
如需本機內容和其他內容設定的詳細資訊,請參閱 變更內容。 如需如何顯示區域變數和其他記憶體相關命令的詳細資訊,請參閱 讀取和寫入記憶體。
備註
當應用程式執行時,區域變數的意義取決於程式計數器的位置,因為這類變數的範圍只會延伸到它們所定義的函式。 如果您不使用 .frame 命令,偵錯工具會使用目前函式的範圍, (堆疊上目前框架) 做為 本機內容。
若要變更本機內容,請使用 .frame 命令並指定您想要的框架編號。
框架編號是堆疊框架在堆疊追蹤中的位置。 您可以使用 k (Display Stack Backtrace) 命令或 [呼叫] 視窗來檢視此堆疊追蹤。 目前框架) (的第一行是畫面編號 0。 後續幾行代表框架數位 1、2、3 等等。
如果您使用 n 參數搭配 k 命令, k 命令會將框架編號與堆疊追蹤一起顯示。 這些框架編號一律以十六進位格式顯示。 另一方面,除非您以 0x 之類的前置詞覆寫此設定,否則 .frame 命令會在預設基數中解譯其引數。 若要變更預設的基數,請使用 n (Set Number Base) 命令。
您可以將本機內容設定為不同的堆疊框架,讓您檢視新的區域變數資訊。 不過,可用的實際變數取決於正在執行的程式碼。
如果發生任何應用程式執行,本機內容就會重設為程式計數器的範圍。 如果暫存器內容變更,本機內容會重設為頂端堆疊框架。
意見反應
https://aka.ms/ContentUserFeedback。
即將登場:在 2024 年,我們將逐步淘汰 GitHub 問題作為內容的意見反應機制,並將它取代為新的意見反應系統。 如需詳細資訊,請參閱:提交並檢視相關的意見反應