能力值:
( LV2,RANK:10 )
|
-
-
2 楼
我也是新手,刚刚查看了一下帮助文档
如果指定的参数是一个用于保存页表的内存区域中的地址,那么调试器就把这个参数被当作要查看的PTE的实际地址,调试器会显示这个PTE和相应的PDE。 如果指定的参数不在这个范围内,调试器会显示用于映射这个地址的PTE和PDE。
|
能力值:
( LV4,RANK:40 )
|
-
-
3 楼
还有个问题哦 如下:
这是我的WINDBG的结果
!pte 801544f4
VA 801544f4
PDE at 00000000C0602000 PTE at 00000000C0400AA0
contains 0000000000B03163 contains 0000000000000000
pfn b03 -G-DA--KWEV
即801544f4这个虚拟地址的PTE在c0400aa0
但是根据书上说的 所有的页表包括页目录是分布在c0000000-c0300000之间的
c0400aa0超过了这个范围
这个例子在帮助文档中的结果如下:
!pte 801544f4
801544F4 - PDE at C0300800 PTE at C0200550
contains 0003B163 contains 00154121
pfn 3b G-DA--KWV pfn 154 G--A--KRV
即pte在c0200550
经过我的计算:
(c0200550-c0000000)/4*1000=80154000
是正确的
我不知道为什么在我机器上是这种结果。。
我调试的是XP sp3 外面的主机是win7
|
能力值:
( LV2,RANK:10 )
|
-
-
4 楼
不清楚,我猜测或许是因为sp3的原因吧,在这种情况下当然要相信调试器,而不是书,毕竟微软可以随时更改这个位置,但是书出版了之后就没法改了。
|
能力值:
( LV4,RANK:40 )
|
-
-
5 楼
朋友 我解决了 是这样的
系统因为启动了dep而自己吧pae (pae=物理地址扩展)启动了
pae启动后 分页机制发生了改变
系统可以最大的寻址达到了64GB 虚拟地址还是32位 只不过页目录项和页表项都是8个字节的了
系统使用了36位的地址线去寻址了 页目录在c0600000 还增加了一个页目录指针表 使用3级装换 具体的装换有点复杂 查下资料就行了
|
能力值:
( LV2,RANK:10 )
|
-
-
6 楼
噢,谢谢分享,先记下有这种情况。
ps.大家一起讨论才能学习到新知识,至少以后我遇到这种情况的时候就知道是怎么回事了~哈哈。
|
|
|