2017-10-18 247 views
1

請查找轉儲示例on Google Drive(完整轉儲但缺少有用的信息)。平臺是Win10 x64 RS2。如何正確生成Windows完整內存轉儲?

我想做一個完整的內存轉儲來分析我的應用程序。 我使用了DumpConfigurator Utility來設置我的環境according to MSDN。我也將轉儲鍵更改爲Ctrl +空格according to MS Technet

我想分析所有進程的調用堆棧,因此我需要!進程信息。

轉儲生成後,我嘗試使用WinDbg來分析轉儲過程。 但我不能通過!process!dml_proc得到任何有用的信息。

它顯示:

0: kd> !process 
Error in reading nt!_EPROCESS at ffffd081a0a56040 
0: kd> !dml_proc 
ERROR: !dml_proc: extension exception 0x80004005. 
"Unable to get type ID of 'nt!_EPROCESS'" 

我要問,爲什麼發生這種情況以及如何正確生成轉儲。

+0

小型轉儲不是一個進程。如果只有你提到了你需要什麼樣的信息。但是,唉,有人將不得不寫一本手冊。給它6至8周。 –

+0

我不確定你是否理解內核模式和用戶模式內存轉儲之間的區別。 !進程只能*用於整個計算機的轉儲 - 即內核轉儲。你想分析一個流程中的所有線程還是系統上的所有流程?你在尋找什麼信息? – GamerJ5

+0

我想要所有的信息,所以我嘗試生成一個完整的轉儲(內存轉儲類型:完整)。 – Ross

回答

1
  • 檢查並確保你的頁面文件在同一驅動器\ Windows下 (系統盤)上,它比物理內存的大小上 機器
  • 如果不同的驅動器上時,看在專用轉儲驅動器 註冊表設置爲頁面文件使用不同的驅動器(WRT 內存轉儲)。
  • 確保您使用有效的MS公共符號

從內存轉儲,它看起來像它被配置爲一個完整的轉儲:

內核位圖轉儲文件:完整的地址空間可用

但是,根據各種命令的輸出,看起來可能的罪魁禍首是頁面文件的大小或其位置(或兩者)。見上面引用的點。