首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何为WinDBG预览TTD跟踪会话获取可用虚拟内存区域?

如何为WinDBG预览TTD跟踪会话获取可用虚拟内存区域?
EN

Stack Overflow用户
提问于 2021-05-19 11:33:30
回答 1查看 143关注 0票数 1

我正在编写dbgeng客户端,并试图枚举用于时间旅行调试会话的可用虚拟内存。

Dbgeng有IDebugDataSpaces2::QueryVirtual方法,它很适合实时用户模式调试会话,但不适用于TTD跟踪会话重放。当我试图调用它时,我会收到0x8000ffff (E_UNEXPECTED)错误。

看起来,来自windbg预览gui的!address!vprot命令也有相同的问题。

代码语言:javascript
复制
0:000> !vprot 0
ERROR: !vprot: extension exception 0x8000ffff.
    "QueryVirtual failed"
0:000> !address

        BaseAddress      EndAddress+1        RegionSize     Type       State                 Protect             Usage
--------------------------------------------------------------------------------------------------------------------------

IDebugDataSpaces4::GetValidRegionVirtual方法。它可以工作,但是太长了(看起来它试图手动检查每一页)。看起来IDebugDataSpaces4::GetNextDifferentlyValidOffsetVirtual在TTD重放方面也是错误的。

dbgeng还有其他方法来枚举进程的有效内存范围吗?或者还有另一种方法从IDX或运行文件中获取这些信息?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-05-20 20:32:10

目前,TTD中没有实时调试和转储文件中可用的一些信息。两个主要特性是:( a) QueryVirtual不工作;( b)进程和线程安全令牌信息没有保存。我在调试扩展中经常使用QueryVirtual,并对其进行了修改。很抱歉成为坏消息的传达者。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67602421

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档