为什么 Process Explorer 需要调试符号来显示内核内存限制?
Why does Process Explorer require debug symbols to show kernel memory limits?
Process Explorer
(又名 procexp
)需要调试符号来显示内核内存限制和提供 API 的库来读取它们。正如我所发现的,当前 运行 内核 (ntoskrln*
) 的符号是必需的,变量 MmSizeOfPagedPoolInBytes
和 MmSizeOfNonPagedPoolInBytes
是从中读取的。可以直接从内核获取。
那么为什么需要调试符号呢?它们是否包含一些无法从 OS 本身获得的信息?
因为 Process Explorer 需要知道这些变量在内核内存中的位置,并且它在 windows 的每个版本之间可能不同,所以符号是获取此位置的正确方法。 Microsoft 发布 public 个符号。
并非所有内核信息都可以从用户 space 轻松访问。
Process Explorer
(又名 procexp
)需要调试符号来显示内核内存限制和提供 API 的库来读取它们。正如我所发现的,当前 运行 内核 (ntoskrln*
) 的符号是必需的,变量 MmSizeOfPagedPoolInBytes
和 MmSizeOfNonPagedPoolInBytes
是从中读取的。可以直接从内核获取。
那么为什么需要调试符号呢?它们是否包含一些无法从 OS 本身获得的信息?
因为 Process Explorer 需要知道这些变量在内核内存中的位置,并且它在 windows 的每个版本之间可能不同,所以符号是获取此位置的正确方法。 Microsoft 发布 public 个符号。
并非所有内核信息都可以从用户 space 轻松访问。