!heap -a
查看所有分配的内存
!heap -s
查看当前内存
- 过一段时间再次通过
!heap -s
查看内存状态,找出增长较快的内存块,如00b70000
- 查看内存详细情况
!heap -stat -h 00b70000
,找出增长迅速的内存块大小,如ea60
- 过滤查找进程中大小为
ea60
的所有进程块!heap -flt s ea60
!heap -p -a 71614e38
查看内存堆栈,定位泄露原因
bp ntdll!NtAllocateVirtualMemory ".if (qwo(@r9) ≥ 0x400){} .else{gc;}"
分配内存大于0x400时中断使用WPR录制内存泄漏
- 启用调试选项
// 开启TracingFlags后,进程PEB标志位会置为1,内核检测到后会打开该进程的内存分配跟踪 reg add "HKLM\Software\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\ckb.exe" /v TracingFlags /t REG_DWORD /d 1 /f
- 录制