!peb

!peb 拡張は、プロセス環境ブロック (PEB) の情報をフォーマットして表示する。

!peb [PEB-Address]

パラメーター

PEB-Address
PEB を調べたいプロセスの 16 進アドレス。 (これは、そのプロセスのカーネル・プロセス・ブロックから得られるPEBのアドレスではない)。もし PEB-Address ユーザー・モードでPEBを省略した場合、現在のプロセスのPEBが使用される。 カーネルモードで省略された場合、PEBに対応する現在の プロセスコンテキスト が表示される。

DLL

Exts.dll

追加情報

プロセス環境ブロックについては 「Microsoft Windows internals」 (Mark RussinovichとDavidソロモン) を参照してください。

解説

PEBはMicrosoft Windowsプロセス制御構造のユーザーモード部分である。

もし !peb 引数なしの拡張モジュールはカーネル・モードでエラーになります。 !プロセス 拡張を使用して、目的のプロセスのPEBアドレスを決定する。 を確認してください。 プロセスコンテキスト の引数としてPEBアドレスを使用する !peb.

表示される正確な出力は、Windowsのバージョンと、カーネルモードでデバッグしているのか、ユーザーモードでデバッグしているのかによって異なる。 以下の例は、Windows Server 2003ターゲットにアタッチされたカーネル・デバッガーからのものである:

kd> !peb
PEB at 7ffdf000
    InheritedAddressSpace:    No
    ReadImageFileExecOptions: No
    BeingDebugged:            No
    ImageBaseAddress:         4ad00000
    Ldr                       77fbe900
    Ldr.Initialized:          Yes
    Ldr.InInitializationOrderModuleList: 00241ef8 . 00242360
    Ldr.InLoadOrderModuleList:           00241e90 . 00242350
    Ldr.InMemoryOrderModuleList:         00241e98 . 00242358
            Base TimeStamp                     Module
        4ad00000 3d34633c Jul 16 11:17:32 2002 D:\WINDOWS\system32\cmd.exe
        77f40000 3d346214 Jul 16 11:12:36 2002 D:\WINDOWS\system32\ntdll.dll
        77e50000 3d3484ef Jul 16 13:41:19 2002 D:\WINDOWS\system32\kernel32.dll
....
    SubSystemData:     00000000
    ProcessHeap:       00140000
    ProcessParameters: 00020000
    WindowTitle: "'D:\Documents and Settings\Administrator\Desktop\Debuggers.lnk'"
    ImageFile:    'D:\WINDOWS\system32\cmd.exe'
    CommandLine:  '"D:\WINDOWS\system32\cmd.exe" '
    DllPath:      'D:\WINDOWS\system32;D:\WINDOWS\system32;....
    Environment:  00010000
        ALLUSERSPROFILE=D:\Documents and Settings\All Users
        APPDATA=D:\Documents and Settings\UserTwo\Application Data
        CLIENTNAME=Console
....
        windir=D:\WINDOWS

同様の!teb エクステンションは、スレッド環境ブロックを表示する。