windows - 为什么 Process Explorer 需要调试符号来显示内核内存限制?
问题描述
Process Explorer
(又名procexp
)需要调试符号来显示内核内存限制和提供 API 来读取它们的库。ntoskrln*
正如我发现的那样,仅需要当前运行的内核 ( ) 的符号,并从中读取变量MmSizeOfPagedPoolInBytes
和。MmSizeOfNonPagedPoolInBytes
可以直接从内核获取它们。
那么为什么需要调试符号呢?它们是否包含一些无法从操作系统本身获得的信息?
解决方案
因为 Process Explorer 需要知道这些变量在内核内存中的位置,并且每个版本的窗口之间可能不同,所以符号是获取该位置的正确方法。Microsoft 发布公共符号。
并非所有内核信息都可以从用户空间轻松访问。
推荐阅读
- java - JPA 嵌套元素集合
- reactjs - react-router 模态解决方案使不必要的重新渲染
- javascript - 如何使用 Chrome 工具栏上的音乐内容按钮?并且可以定制吗?
- git - 将 Pycharm 项目推送到 Git:多个根目录
- python - MongoDB,PyMongo 如何按唯一字段计数过滤结果?
- c - 什么场景下可以在函数中使用auto storage class?
- python - AttributeError:“DataFrame”对象没有属性“get_value”
- java - 如何使用反射获取字段值中的类?
- cassandra - 重启ubuntu 16.04机器后无法启动Cassandra 3.11.6服务
- angular - 如何禁用角垫表行上的点击事件?