Windbg - PEB Paged Out(虚拟页面大小混乱)

时间:2015-12-17 06:00:04

标签: numbers size virtual windbg

有人可以向我解释这意味着什么。 (我已经加粗了有关的具体部分)。

"启动VPN" field - 在这种情况下,0x37D9BD30 - 表示起始虚拟页码。必须将其乘以页面大小,才能将其转换为实际地址。您可以使用?(评估表达式)命令将此值乘以0x2000,这是示例来自基于Itanium的计算机的页面大小。

kd> ? 37d9bd3e*2000        
Evaluate expression: 7676040298496 = 000006fb`37a7c000

然后可以将范围的大小转换为字节:

kd> ? 37d9bd3e-37d9bd30+1          <--   computes the number of pages
Evaluate expression: 15 = 00000000`0000000f
kd> ? f*2000
Evaluate expression: 122880 = 00000000`0001e000

所以ExplorerFrame.dll从地址0x000006Fb37A7C000开始,并且0x1E000字节大。您可以使用以下符号加载其符号:

kd> .reload /f ExplorerFrame.dll=6fb`37a7c000,1e000

1 个答案:

答案 0 :(得分:2)

页面大小取决于处理器。致电GetSystemInfo() [MSDN]会在字段SYSTEM_INFO.dwPageSize中显示页面大小。 Wikipedia提供了执行此操作的代码:

#include <stdio.h>
#include <windows.h>

int main(void) {
    SYSTEM_INFO si;
    GetSystemInfo(&si);

    printf("The page size for this system is %u bytes.\n", si.dwPageSize);

    return 0;
}

有关可能的页面大小,请参阅Intel CPU手册。

  • x86 CPU可能有4k(最常见),2M(支持PAE)或4M(无PAE支持)
  • x64 CPU可能有4k(最常见),2M甚至有1G页面。它没有4M,因为所有x64 CPU都支持PAE
  • Itanium可能有4k,8k,64k,256k,1M,4M,16M或256M页面