2011-02-03 64 views
5

我想分析完整的崩潰轉儲(* .dmp)文件並獲取私有字節數據。我知道SysInternals的VMMap可以告訴我我的私有字節,堆等是多少,但我需要的是如果我有轉儲,我應該能夠解析它並獲得堆(託管堆)結構和數據堆。我已經完成了閱讀PEB,然後走過堆。在WinDbg中解析專用字節(託管堆除外)的故障轉儲?

我無法弄清楚的是如何讀取私有字節(除了Heap,它應該是本機代碼的過程數據)。任何人都可以請我指出正確的方向,這樣我就可以從崩潰轉儲中解析除堆以外的私有字節。

謝謝。

+0

你能澄清你的問題嗎?你應該能夠訪問內存中的任何位置,一旦你有它加載了一般命令(x,dX,s等)保存的轉儲 – aaron 2011-05-08 06:05:21

回答

5

解決-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% 

未知將虛擬allocs。

要列出未知的內存區域,您可以運行:

解決-f:VAR

VAR作爲debugger.chm定義 - 忙的區域!這些區域包括所有虛擬分配塊,SBH堆,來自自定義分配器的內存以及地址空間中不屬於其他分類的所有其他區域。

+1

一旦我做!address -f:VAR接下來是什麼?我只是得到一堆內存地址。理解它們的最好方法是什麼? – Mark 2012-01-26 17:37:38