工具:LeakDiag 可以从微软的FTP进行下载: ftp://ftp.microsoft.com/PSS/Tools/Developer%20Support%20Tools/LeakDiag/
leakdiag125.msi 下载后大约有1.7MB,缺省的安装目录是C:\leakdiag
LeakDiag 目前支持六种类型的泄漏:
Virtual Allocator
Heap Allocator
MPHeap Allocator
COM AllocatorCoTaskMem
COM Private Allocator
C Runtime Allocator
LeakDiag拦截指定内存分配的调用并跟踪各种调用栈,它报告已分配但尚未释放的内存,这一信息允许逐个地排除内存泄露问题,以精确查看哪些组件进行了该分配。使用正确的调试符号,还可以查看分配内存的具体代码行数。
LeakDiag 和常见的内存测试工具不一致的地方是,它使用了微软的Detours 技术,常见的内存测试工具通常都在代码编译或者连接阶段来修改进行一些修改,进而对内存分配释放等操作进行截获。而Microsoft Detours就可以中断原有的执行过程转而执行你提供的detour代码或者是在之前加入一些代码然后继续执行原有代码。看起来就好像是在原有函数的入口处直接跳转到新代码了,而这是在运行期变更的。
leakdiag125.msi 下载后大约有1.7MB,缺省的安装目录是C:\leakdiag
LeakDiag 目前支持六种类型的泄漏:
Virtual Allocator
Heap Allocator
MPHeap Allocator
COM AllocatorCoTaskMem
COM Private Allocator
C Runtime Allocator
LeakDiag拦截指定内存分配的调用并跟踪各种调用栈,它报告已分配但尚未释放的内存,这一信息允许逐个地排除内存泄露问题,以精确查看哪些组件进行了该分配。使用正确的调试符号,还可以查看分配内存的具体代码行数。
LeakDiag 和常见的内存测试工具不一致的地方是,它使用了微软的Detours 技术,常见的内存测试工具通常都在代码编译或者连接阶段来修改进行一些修改,进而对内存分配释放等操作进行截获。而Microsoft Detours就可以中断原有的执行过程转而执行你提供的detour代码或者是在之前加入一些代码然后继续执行原有代码。看起来就好像是在原有函数的入口处直接跳转到新代码了,而这是在运行期变更的。





