我有一个程序冻结(特别是 sql 开发人员),其中有一些未保存的文件。在终止进程之前,我使用 sysinternal 的进程资源管理器创建了一个转储文件。我真的只损失了几个小时的工作,但我认为看看我可以从转储文件中提取什么将是一次很好的学习体验。到目前为止,我已经下载并运行了 windbg,并找到了我的文本:
s -u 0x00000000 L?0xffffffff "text I know exists in my file"
从那里我得到了相关的内存地址,并且可以查看内存窗口中的文本以及大部分文件。但是,从这里我有点卡住了。我知道我可以使用 du 命令转储文本,但我应该使用哪种策略来确定开始和结束范围。这是一个 1 Gig 转储,所以我从不将 0x00000000 转储到 0xffffffff,因为我没有大多数编辑器可以打开的文本文件。有没有办法只转储用户内存或非代码内存等?它不一定是完美的。我只是在 textpad 中打开转储文件,但没有显示 unicode 数据,只有偶尔的 ascii(可能是因为 textpad 无法检测到类型或者因为它是 64 位转储)。