在WinDbg中分析私有字节的崩溃转储(托管堆除外)?
我想解析完整的崩溃转储(*.dmp)文件并获取私有字节数据。我知道SysInternals的VMMap可以告诉我私有字节、堆等的数量,但我需要的是,如果我有转储,我应该能够解析它,并获得堆中的堆(托管堆)结构和数据。我已经通过阅读PEB和遍历堆完成了这项工作 我无法理解的是如何读取私有字节(而不是Heap,它应该是本机代码的进程数据)。任何人都可以告诉我正确的方向,这样我就能够解析崩溃转储中除堆之外的私有字节 谢谢在WinDbg中分析私有字节的崩溃转储(托管堆除外)?,windbg,crash-dumps,memory-dump,Windbg,Crash Dumps,Memory Dump,我想解析完整的崩溃转储(*.dmp)文件并获取私有字节数据。我知道SysInternals的VMMap可以告诉我私有字节、堆等的数量,但我需要的是,如果我有转储,我应该能够解析它,并获得堆中的堆(托管堆)结构和数据。我已经通过阅读PEB和遍历堆完成了这项工作 我无法理解的是如何读取私有字节(而不是Heap,它应该是本机代码的进程数据)。任何人都可以告诉我正确的方向,这样我就能够解析崩溃转储中除堆之外的私有字节 谢谢 !address -summary 在第一部分中,您将获得使用情况的细分: -
!address -summary
在第一部分中,您将获得使用情况的细分:
--- Usage Summary ---------------- RgnCount ----------- Total Size -------- %ofBusy %ofTotal
Free 170 6f958000 ( 1.743 Gb) 87.18%
<unknown> 477 6998000 ( 105.594 Mb) 40.21% 5.16%
Stack 417 5d00000 ( 93.000 Mb) 35.42% 4.54%
Image 253 3970000 ( 57.438 Mb) 21.87% 2.80%
Heap 20 600000 ( 6.000 Mb) 2.28% 0.29%
TEB 93 5d000 ( 372.000 kb) 0.14% 0.02%
Other 9 32000 ( 200.000 kb) 0.07% 0.01%
PEB 1 1000 ( 4.000 kb) 0.00% 0.00%
VAR,如debugger.chm-繁忙区域中定义的。这些区域包括所有虚拟分配块、SBH堆、来自自定义分配器的内存,以及地址空间中不属于其他类别的所有其他区域。您能澄清您的问题吗?您应该能够访问内存中由常用命令(x、dX、s等)保存的转储文件的任何位置,一旦您加载了转储文件,我就这样做了!地址-f:VAR下一步是什么?我只是得到一堆内存地址。了解它们的最佳方式是什么?请注意,在用法摘要中,还包括保留(计入虚拟字节计数器)。私有字节将接近状态摘要中的MEM_COMMIT减去类型摘要中的MEM_IMAGE。
!address -f:VAR