Debugging Tools for Windows

!pcr

!pcr扩展显示指定处理器上的处理器控制域(Processor Control Region (PCR))的当前状态。

语法

!pcr [Processor

参数

Processor
指定要获取哪个处理器的PCR信息。如果省略Processor,则使用当前处理器。

DLL

Windows 2000 Kdextx86.dll
Windows XP和之后 Kdexts.dll

注释

处理器控制块(PRCB)是PCR的一个扩展。可以通过!prcb命令来显示。

下面是x86目标机上的!pcr扩展命令的示例:

kd> !pcr 0
KPCR for Processor 0 at ffdff000:
    Major 1 Minor 1
      NtTib.ExceptionList: 801626e0
          NtTib.StackBase: 801628f0
         NtTib.StackLimit: 8015fb00
       NtTib.SubSystemTib: 00000000
            NtTib.Version: 00000000
        NtTib.UserPointer: 00000000
            NtTib.SelfTib: 00000000

                  SelfPcr: ffdff000
                     Prcb: ffdff120
                     Irql: 00000000
                      IRR: 00000000
                      IDR: ffffffff
            InterruptMode: 00000000
                      IDT: 80043400
                      GDT: 80043000
                      TSS: 803cc000

            CurrentThread: 8015e8a0
               NextThread: 00000000
               IdleThread: 8015e8a0

                DpcQueue:  0x80168ee0 0x80100d04 ntoskrnl!KiTimerExpiration
                          

显示中的一个条目是中断请求级别(IRQL)。!pcr扩展显示的是当前IRQL,但是通常对当前IRQL都不是很感兴趣。Bug check或者调试器连接之前的IRQL要更加有用一些。可以通过!irql来显示这种IRQL,但是只有针对运行Windows Server2003和之后版本Windows的机器才有用。

附加信息

关于PCR和PRCB的更多信息,查看Mark Russinovich 和David Solomon 编写的Microsoft Windows Internals

Build machine: CAPEBUILD