!棧
!stacks 擴充功能會顯示核心堆疊的相關信息。
語法
!stacks [Detail [FilterString]]
參數
細節
指定要在顯示器中使用的詳細數據層級。 下表列出 Detail 的有效值。
0 |
顯示目前核心堆疊的摘要。 這是預設值。 |
1 |
顯示目前分頁的堆疊,以及目前的核心堆疊。 |
2 |
顯示所有堆疊的完整參數,以及目前分頁的堆疊和目前的核心堆疊。 |
FilterString
只顯示包含符號中指定子字串的線程。
DLL
Kdexts.dll
其他資訊
如需核心堆疊的相關信息,請參閱 Mark Russinovich 和 David 所羅門Microsoft Windows 內部。
備註
!stacks 延伸模組提供每個線程狀態的簡短摘要。 您可以使用此擴充功能來取得系統的快速概觀,特別是偵錯資源衝突或死結等多線程問題時。
!findstack 使用者模式延伸模組也會顯示特定堆疊的相關信息。
以下是最簡單的 !stacks 顯示範例:
kd> !stacks 0
Proc.Thread .Thread ThreadState Blocker
[System]
4.000050 827eea10 Blocked +0xfe0343a5
[smss.exe]
[csrss.exe]
b0.0000a8 82723b70 Blocked ntoskrnl!_KiSystemService+0xc4
b0.0000c8 82719620 Blocked ntoskrnl!_KiSystemService+0xc4
b0.0000d0 827d5d50 Blocked ntoskrnl!_KiSystemService+0xc4
.....
第一個數據行會顯示進程標識碼和線程標識碼(以句號分隔)。
第二個數據行是線程 ETHREAD 區塊的目前位址。
第三個數據行會顯示線程的狀態(已初始化、就緒、執行、待命、終止、轉換或封鎖)。
第四個數據行會顯示線程堆疊上的頂端位址。
以下是更詳細的 !stacks 輸出範例:
kd> !stacks 1
Proc.Thread .Thread ThreadState Blocker
[System]
4.000008 827d0030 Blocked ntoskrnl!MmZeroPageThread+0x66
4.000010 827d0430 Blocked ntoskrnl!ExpWorkerThread+0x189
4.000014 827cf030 Blocked Stack paged out
4.000018 827cfda0 Blocked Stack paged out
4.00001c 827cfb10 Blocked ntoskrnl!ExpWorkerThread+0x189
.....
[smss.exe]
9c.000098 82738310 Blocked Stack paged out
9c.0000a0 826a5190 Blocked Stack paged out
9c.0000a4 82739d30 Blocked Stack paged out
[csrss.exe]
b0.0000bc 826d0030 Blocked Stack paged out
b0.0000b4 826c9030 Blocked Stack paged out
b0.0000a8 82723b70 Blocked ntoskrnl!_KiSystemService+0xc4
.....
kd> !stacks 2
Proc.Thread .Thread ThreadState Blocker
[System]
4.000008 827d0030 Blocked ntoskrnl!KiSwapThread+0xc5
ntoskrnl!KeWaitForMultipleObjects+0x2b4
ntoskrnl!MmZeroPageThread+0x66
ntoskrnl!Phase1Initialization+0xd82
ntoskrnl!PspSystemThreadStartup+0x4d
ntoskrnl!CreateSystemRootLink+0x3d8
+0x3f3f3f3f
4.000010 827d0430 Blocked ntoskrnl!KiSwapThread+0xc5
ntoskrnl!KeRemoveQueue+0x191
.....