1、確定內存泄露
2、定位內存泄露
使用windbg tools中的工具umdh和gflags。
gflags用於打開user trace database對特定進程的記錄。
umdh用於dump進程的callstack內在heap上分配的內存記錄,並可對比兩次記錄,生成差異數據。
使用步驟:
gflags -i appname.exe +ust//之後打開的appname.exe纔能有效。
使用gflags打開針對目標程序的stack trace,記錄在database.
umdh -p:app_pid -f:e:\appname_1.log
umdh -p:app_pid -f:e:\appname_2.log
umdh -d e:\appname_1.log e:\appname_2.log > e:\cmp.txt \\-d指明使用十進制顯示內存大小
檢查cmp.txt文件中的記錄,分析持續增長的callstack。
確定可疑的callstack後,利用backtrace ID到appname_2.log中查找callstack的詳細記錄。