(很抱歉我提出了类似的问题,我已经修改了。)
我试着在windows xp上调试一个可执行的pe文件,看看pde和pte在实际系统中是如何工作的。我知道windbg有一些命令来查看细节。好像是这样!pte将能够看到虚拟地址的相应pde和pte。但我遇到了
0:000> !pteNo export pte found
我在google上做了一些工作,发现它是一个extension command,但是我没有看到任何关于如何启用这些扩展的描述。似乎除了我,每个人都在直接使用它。
我想知道我错过了什么,但我想不出来。有人能给我一些建议吗?
谢谢。

最佳答案

由于您使用的是xpLocal Kernel Debugging支持,因此无需编辑引导配置和重新启动
如果您使用的操作系统高于xp,则需要使用/debug on开关编辑操作系统的引导配置,并重新启动以获得本地内核调试支持
bcdedit /debug on and reboot只有这样windbg -kl才能在大于xp的操作系统上工作

if you don't want to edit your boot configuration download livekd
from sysinternals and use it instead for local kernel debugging

使用此命令行打开windbg
windbg -kl

这将使用提示lkd>而不是0:000>打开windbg。
现在您可以使用!pte命令
将explorer.exe替换为要检查的运行二进制文件的名称(请注意,这不是用户模式,而是二进制文件的内核模式部分)
在下面的示例中,我在windows 7 x86 32位物理机中使用livekd
C:\>livekd
LiveKd v5.40 - Execute kd/windbg on a live system
Sysinternals - www.sysinternals.com
Copyright (C) 2000-2015 Mark Russinovich and Ken Johnson

Launching C:\Program Files\Windows Kits\8.1\Debuggers\x86\kd.exe:

Microsoft (R) Windows Debugger Version 6.3.9600.17298 X86
Copyright (c) Microsoft Corporation. All rights reserved.

kd> !process 0 0 explorer.exe

PROCESS 864b2638  SessionId: 1  Cid: 05f8    Peb: 7ffde000  ParentCid: 05e4
    DirBase: 7e28c2c0  ObjectTable: 964ccad8  HandleCount: 1062.
    Image: explorer.exe

kd> .process /p /r 864b2638
Implicit process is now 864b2638
Loading User Symbols

kd> !pte explorer
                    VA 00400000
PDE at C0600010            PTE at C0002000
contains 000000000FFB2867  contains 80000000103F7025
pfn ffb2      ---DA--UWEV  pfn 103f7     ----A--UR-V

kd> $$ page table entry contains 103f7025
kd> dc c0002000 l1
c0002000  103f7025                             %p?.
kd> $$ the top 5 bytes are page frame nos lets see if the physical page contains MZ
kd> !dc 103f7000 l1
#103f7000 00905a4d MZ.......L`...ac
kd>

10-04 13:50