共用方式為


!Cs

!cs 延伸模組會顯示一或多個重要區段或整個重要區段樹狀結構。

!cs [-s] [-l] [-o] 
!cs [-s] [-o] Address 
!cs [-s] [-l] [-o] StartAddress EndAddress 
!cs [-s] [-o] -d InfoAddress 
!cs [-s] -t [TreeAddress] 
!cs -? 

參數

參數 描述
-s 如果這項資訊可用,則顯示每個重要區段的初始化堆疊追蹤。
-l 只顯示鎖定的重要區段。
-o 針對要顯示的任何鎖定重要區段,顯示擁有者的堆疊。
地址 指定要顯示的重要區段位址。 如果您省略此參數,調試程式會顯示目前進程中的所有重要區段。
StartAddress 指定要搜尋重要區段的位址範圍的開頭。
EndAddress 指定要搜尋重要區段的位址範圍結尾。
-D 顯示與 DebugInfo 相關聯的重要區段。
InfoAddress 指定 DebugInfo 的位址。
-t 顯示重要的區段樹狀結構。 使用 -t 選項之前,您必須針對目標進程啟用應用程式驗證器,然後選取 [檢查鎖定使用方式] 選項。
TreeAddress 指定重要區段樹狀結構根目錄的位址。 如果您省略此參數或指定零,調試程式會顯示目前進程的重要區段樹狀結構。
-? 在 [調試程式命令] 視窗中顯示此延伸模組的一些說明文字。

DLL

Exts.dll

其他資訊

如需可顯示重要區段資訊的其他命令和延伸模組,請參閱 顯示重大區段。 如需重要章節的詳細資訊,請參閱 Microsoft Windows SDK 檔、Windows 驅動程式套件 (WDK) 檔和 Mark Russinovich 和 David 所羅門的 Microsoft Windows 內部

備註

!cs 延伸模組需要偵錯的進程的完整符號(包括類型資訊),以及針對Ntdll.dll。

下列範例示範如何使用 !cs。 下列命令會顯示位址0x7803B0F8重要區段的相關信息,並顯示其初始化堆疊追蹤。

0:001> !cs -s 0x7803B0F8
Critical section   = 0x7803B0F8 (MSVCRT!__app_type+0x4)
DebugInfo          = 0x6A262080
NOT LOCKED
LockSemaphore      = 0x0
SpinCount          = 0x0

Stack trace for DebugInfo = 0x6A262080:

0x6A2137BD: ntdll!RtlInitializeCriticalSectionAndSpinCount+0x9B
0x6A207A4C: ntdll!LdrpCallInitRoutine+0x14
0x6A205569: ntdll!LdrpRunInitializeRoutines+0x1D9
0x6A20DCE1: ntdll!LdrpInitializeProcess+0xAE5

下列命令會顯示 DebugInfo 位於位址0x6A262080之重要區段的相關信息。

0:001> !cs -d 0x6A262080
DebugInfo          = 0x6A262080
Critical section   = 0x7803B0F8 (MSVCRT!__app_type+0x4)
NOT LOCKED
LockSemaphore      = 0x0
SpinCount          = 0x0

下列命令會顯示目前進程中所有使用中重要區段的相關信息。

## 0:001> !cs

DebugInfo          = 0x6A261D60
Critical section   = 0x6A262820 (ntdll!RtlCriticalSectionLock+0x0)
LOCKED
LockCount          = 0x0
OwningThread       = 0x460
RecursionCount     = 0x1
LockSemaphore      = 0x0
## SpinCount          = 0x0

DebugInfo          = 0x6A261D80
Critical section   = 0x6A262580 (ntdll!DeferedCriticalSection+0x0)
NOT LOCKED
LockSemaphore      = 0x7FC
## SpinCount          = 0x0

DebugInfo          = 0x6A262600
Critical section   = 0x6A26074C (ntdll!LoaderLock+0x0)
NOT LOCKED
LockSemaphore      = 0x0
## SpinCount          = 0x0

DebugInfo          = 0x77fbde20
Critical section   = 0x77c8ba60 (GDI32!semColorSpaceCache+0x0)
LOCKED
LockCount          = 0x0
OwningThread       = 0x00000dd8
RecursionCount     = 0x1
LockSemaphore      = 0x0
## SpinCount          = 0x00000000

...

下列命令會顯示關鍵區段樹狀結構。

0:001> !cs -t

Tree root 00bb08c0

Level     Node       CS    Debug  InitThr EnterThr  WaitThr TryEnThr LeaveThr EnterCnt  WaitCnt
## 


    0 00bb08c0 77c7e020 77fbcae0      4c8      4c8        0        0      4c8        c        0
 1 00dd6fd0 0148cfe8 01683fe0      4c8      4c8        0        0      4c8        2        0
 2 00bb0aa0 008e8b84 77fbcc20      4c8        0        0        0        0        0        0
    3 00bb09e0 008e8704 77fbcba0      4c8        0        0        0        0        0        0
    4 00bb0a40 008e8944 77fbcbe0      4c8        0        0        0        0        0        0
    5 00bb0a10 008e8824 77fbcbc0      4c8        0        0        0        0        0        0
    5 00bb0a70 008e8a64 77fbcc00      4c8        0        0        0        0        0        0
    3 00bb0b00 008e8dc4 77fbcc60      4c8        0        0        0        0        0        0
    4 00bb0ad0 008e8ca4 77fbcc40      4c8        0        0        0        0        0        0
    4 00bb0b30 008e8ee4 77fbcc80      4c8        0        0        0        0        0        0
    5 00dd4fd0 0148afe4 0167ffe0      4c8        0        0        0        0        0        0
    2 00bb0e90 77c2da98 00908fe0      4c8      4c8        0        0      4c8       3a        0
 3 00bb0d70 77c2da08 008fcfe0      4c8        0        0        0        0        0        0

下列項目會出現在此 !cs -t 顯示中:

  • InitThr 是初始化 CS 之線程的線程標識碼。

  • EnterThr 是上次呼叫 EnterCriticalSection 之線程的標識碼。

  • WaitThr 是線程的標識碼,該線程發現另一個線程擁有的重要區段,並上次等候該區段。

  • TryEnThr 是上次呼叫 TryEnterCriticalSection 之線程的標識碼。

  • LeaveThr 是上次呼叫 LeaveCriticalSection 的線程標識符

  • EnterCnt 是 EnterCriticalSection計數。

  • WaitCnt 是爭用計數。

另請參閱

!ntsdexts.locks

顯示重要區段

重大區段逾 時 (使用者模式)