從host端對Windows虛機進行內存dump和分析

1 場景用途

在市場故障或開發測試時遇到的windows卡頓問題,無法啓動任務管理器,無法啓動調試器,尤其是偶現的。在未配置雙機調試,ScrollLock藍屏和核心轉儲時。要想獲知虛機內正在做什麼十分困難。在此提供一種方法可以或許虛機的內存數據,進而轉換爲windbg可以分析的完全轉儲。

2 步驟

2.1 dump虛機內存

瀏覽一下host端的磁盤空間

df -h

將虛機內存保存到比較空餘的地方。這條命令__只支持絕對路徑__

virsh qemu-monitor-command虛機id或虛機名--hmp dump-guest-memory /opt/lessons/1.virshdmp

如果需要通過網盤傳回研發本地的話,最好先壓縮一下內存dump。爲避免下載過程中報錯重下,最好先分卷再上傳。

zip -v -s 1g 1.virshdmp.zip 1.virshdmp

2.2 轉換爲windbg所用的dump格式

下載volatility。在windows上輸入

volatility_2.6_win64_standalone --profile=客戶機系統--plugins=raw2dmp -f1.virshdmpraw2dmp --output-image=1.dmp

此處的客戶機系統填諸如WinXPSP3x86,可在volatility搜索。

2.3 用windbg打開1.dmp

3 x64的客戶機

如果是x64的客戶機,在windbg打開dump時會報錯。這個dump幾乎啥都看不了。

但是執行

!wow64exts.sw

後可正常分析。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章