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的详细记录。