首页 > 解决方案 > 为什么 Process Explorer 需要调试符号来显示内核内存限制?

问题描述

Process Explorer(又名procexp)需要调试符号来显示内核内存限制和提供 API 来读取它们的库。ntoskrln*正如我发现的那样,仅需要当前运行的内核 ( ) 的符号,并从中读取变量MmSizeOfPagedPoolInBytes和。MmSizeOfNonPagedPoolInBytes可以直接从内核获取它们。
那么为什么需要调试符号呢?它们是否包含一些无法从操作系统本身获得的信息?

没有符号的内核内存限制

标签: windowsmemorykernellimitsymbols

解决方案


因为 Process Explorer 需要知道这些变量在内核内存中的位置,并且每个版本的窗口之间可能不同,所以符号是获取该位置的正确方法。Microsoft 发布公共符号。

并非所有内核信息都可以从用户空间轻松访问。


推荐阅读