文章目录
写程序时经常会用到第三方模块和系统自带的模块,而这2种我们都是没有源码的,一旦发生内存泄漏,传统的日志排查法或一般的计数等手段好像都行不通了,这时候咋办?别慌,不妨试一下微软祭出的一款windows下调试的利器—— WinDbg。
对于内存监测,我们实际上是使用WinDbg
安装目录下的gflags
和umdh.exe
这个2个程序去完成的。为了方便各位看官使用,我写了个脚本,需要的请自取。
检测泄漏的一般步骤
1、设置pdb符号库路径
umdh
最终会分析出使用堆内存的函数调用堆栈,为了方便查看函数调用堆栈的具体函数,需要设置pdb
符号库路径:
set _NT_SYMBOL_PATH=F:\PDB\Temp64\Release
环境变量的名称是_NT_SYMBOL_PATH
,其值是包含pdb
的路径。
2、调用gflags设置启用udmh.exe的堆栈跟踪
g