【发布时间】:2014-12-11 06:09:23
【问题描述】:
我正在为 Windbg 编写一个扩展,在某个特定点我需要获得内存偏移的权限,就像 !address addr 在 Windbg 中提供的那样。我在这里查看了 Debugger Engine API 的可用功能:
http://msdn.microsoft.com/en-us/library/windows/hardware/ff551059%28v=vs.85%29.aspx
但是我找不到这样一个函数,它可以根据内存偏移量返回部分/权限信息。基本上我想知道地址所在的部分,数据部分,文本部分等,它有什么权限等等。
我找到的最接近的探测函数是 IDebugDataSpaces4 接口中的 GetOffsetInformation。但是根据文档,它没有提供我正在寻找的任何东西:
http://msdn.microsoft.com/en-us/library/windows/hardware/ff548055(v=vs.85).aspx
我总是可以运行!address 命令并解析其输出,但我一直在寻找一种更简洁的方法,可以通过使用 API 直接获取此信息。
我错过了什么吗?是否有记录/未记录的方式可以实现这一目标?
【问题讨论】:
-
听起来您正在寻找
IDebugDataSpaces2::QueryVirtual。它为包含给定地址的页面填充了一个MEMORY_BASIC_INFORMATION结构。 -
确实,这正是我想要的。谢谢!
标签: visual-studio debugging winapi windbg dbgeng