k、kb、kc、kd、kp、kP、kv (顯示堆疊回溯)

k*命令會以相關資訊顯示指定執行緒的堆疊框架。

使用者模式,x86 處理器

[~Thread] k[b|p|P|v] [c] [n] [f] [L] [M] [FrameCount]
[~Thread] k[b|p|P|v] [c] [n] [f] [L] [M] = BasePtr [FrameCount]
[~Thread] k[b|p|P|v] [c] [n] [f] [L] [M] = BasePtr StackPtr InstructionPtr
[~Thread] kd [WordCount]

核心模式,x86 處理器

[Processor] k[b|p|P|v] [c] [n] [f] [L] [M] [FrameCount]
[Processor] k[b|p|P|v] [c] [n] [f] [L] [M] = StackPtr FrameCount
[Processor] k[b|p|P|v] [c] [n] [f] [L] [M] = BasePtr StackPtr InstructionPtr
[Processor] kd [WordCount]

使用者模式,x64 處理器

[~Thread] k[b|p|P|v] [c] [n] [f] [L] [M] [FrameCount]
[~Thread] k[b|p|P|v] [c] [n] [f] [L] [M] = StackPtr FrameCount
[~Thread] k[b|p|P|v] [c] [n] [f] [L] [M] = StackPtr InstructionPtr FrameCount
[~Thread] kd [WordCount]

核心模式、x64 處理器

[Processor] k[b|p|P|v] [c] [n] [f] [L] [M] [FrameCount]
[Processor] k[b|p|P|v] [c] [n] [f] [L] [M] = StackPtr FrameCount
[Processor] k[b|p|P|v] [c] [n] [f] [L] [M] = StackPtr InstructionPtr FrameCount
[Processor] kd [WordCount]

使用者模式、ARM 處理器

[~Thread] k[b|p|P|v] [c] [n] [f] [L] [M] [FrameCount]
[~Thread] k[b|p|P|v] [c] [n] [f] [L] [M] = StackPtr FrameCount
[~Thread] k[b|p|P|v] [c] [n] [f] [L] [M] = StackPtr InstructionPtr FrameCount
[~Thread] kd [WordCount]

核心模式、ARM 處理器

[Processor] k[b|p|P|v] [c] [n] [f] [L] [M] [FrameCount]
[Processor] k[b|p|P|v] [c] [n] [f] [L] [M] = StackPtr FrameCount
[Processor] k[b|p|P|v] [c] [n] [f] [L] [M] = StackPtr InstructionPtr FrameCount
[Processor] kd [WordCount]

參數

執行緒
指定要顯示的執行緒堆疊。 如果您省略此參數,則會顯示目前線程的堆疊。 如需執行緒語法的詳細資訊,請參閱 執行緒語法。 您只能在使用者模式中指定執行緒。

處理器
指定要顯示其堆疊的處理器。 如需處理器語法的詳細資訊,請參閱 多處理器語法

b
顯示傳遞至堆疊追蹤中每個函式的前三個參數。

c
顯示全新的堆疊追蹤。 每個顯示行只包含模組名稱和函式名稱。

p
顯示堆疊追蹤中呼叫的每個函式的所有參數。 參數清單包含每個參數的資料類型、名稱和值。 此選項 p 區分大小寫。 此參數需要完整的符號資訊。

P
顯示堆疊追蹤中呼叫的每個函式的所有參數,例如 p 參數。 不過,對於 P ,函式參數會列印在顯示器的第二行,而不是在與其餘數據相同的行上列印。

v
顯示框架指標省略 (FPO) 資訊。 在以 x86 為基礎的處理器上,顯示器也包含呼叫慣例資訊。

n
顯示框架編號。

f
顯示相鄰畫面格之間的距離。 此距離是分隔實際堆疊上框架的位元組數目。

L
隱藏顯示中的來源行。 L 區分大小寫。

M
使用 偵錯工具標記語言顯示輸出。 顯示中的每個畫面編號都是一個連結,您可以選取以設定區域內容並顯示區域變數。 如需本機內容的相關資訊,請參閱 .frame

FrameCount
指定要顯示的堆疊框架數目。 除非您已使用 n (set number base) 命令,以十六進位格式指定此數位。 使用 .kframes (設定堆疊長度) 命令來顯示預設值並變更值。

BasePtr
指定堆疊追蹤的基底指標。 BasePtr只有在命令之後有等號 (=) 時,才能使用 參數。

StackPtr
指定堆疊追蹤的堆疊指標。 如果您省略 StackPtrInstructionPtr ,此命令會使用 rsp (或 esp) register 指定的堆疊指標,以及 (或 eip) 暫存器指定的指令指標。

InstructionPtr
指定堆疊追蹤的指令指標。 如果您省略 StackPtrInstructionPtr ,此命令會使用 rsp (或 esp) register 指定的堆疊指標,以及 (或 eip) 暫存器指定的指令指標。

WordCount
指定要傾印的堆疊中DWORD_PTR值數目。

環境  
模式 使用者模式、核心模式
目標 即時、損毀傾印
平台 全部

備註

當您發出 kkbkpkPkv 命令時,堆疊追蹤會以表格式格式顯示。 如果啟用行載入,也會顯示來源模組和行號。

堆疊追蹤包含堆疊框架的基底指標、傳回位址和函式名稱。

如果您使用 kpkP 命令,則會顯示堆疊追蹤中呼叫的每個函式的完整參數。 參數清單包含每個參數的資料類型、名稱和值。

命令可能很慢。 例如,呼叫 MyFunction2MyFunction1 ,偵錯工具必須有完整的符號資訊 MyFunction1 ,才能顯示在此呼叫中傳遞的參數。 此命令不會完全顯示未公開在公用符號中的內部 Microsoft Windows 常式。

如果您使用 kbkv 命令,則會顯示傳遞至每個函式的前三個參數。 如果您使用 kv 命令,也會顯示 FPO 資料。

在以 x86 為基礎的處理器上 kv ,命令也會顯示呼叫慣例資訊。

當您使用 kv 命令時,FPO 資訊會以下列格式新增到行尾。

FPO 文字 意義
FPO:[非 Fpo] 沒有框架的 FPO 資料。
FPO:[N1,N2,N3] N1 是參數總數。

N2 是區域變數的 DWORD 值數目。

N3 是已儲存的暫存器數目。
FPO: [N1,N2] TrapFrame @ Address N1 是參數總數。

N2 是區域變數的 DWORD 值數目。

位址 是陷阱框架的位址。
FPO:TaskGate 區段:0 區段 是工作閘道的區段選取器。
FPO:[EBP 0xBase] Base 是框架的基底指標。

此命令 kd 會顯示原始堆疊資料。 每個 DWORD 值都會顯示在個別行上。 符號資訊會與相關聯的符號一起顯示。 此格式會建立比其他 k* 命令更詳細的清單。 kd此命令相當於dds (顯示記憶體) 命令,該命令會使用堆疊位址作為其參數。

如果您在函式程式執行) 之前,在 k 函式開頭使用 命令 (,您會收到不正確的結果。 偵錯工具會使用框架暫存器來計算目前的回溯,而且在函式執行前,此暫存器不會正確設定。

在使用者模式中,堆疊追蹤是以目前線程的堆疊為基礎。 如需執行緒的詳細資訊,請參閱 控制進程和執行緒

在核心模式中,堆疊追蹤是以目前的 暫存器內容為基礎。 您可以設定暫存器內容,以符合特定的執行緒、內容記錄或陷阱框架。

其他資訊

如需註冊內容和其他內容設定的詳細資訊,請參閱 變更內容